Эффективный распараллеленный анализ графа6 с помощью numpy или SIMD?Python

Программы на Python
Anonymous
Эффективный распараллеленный анализ графа6 с помощью numpy или SIMD?

Сообщение Anonymous »

У меня есть класс мультиграфа в Python, который используется в качестве основы для простых ненаправленных, незацикленных графов.

Я написал свой собственный синтаксический анализатор графа 6 на основе советов в сообщении SO.

NetworkX реализует его аналогичным образом. Тем не менее, оба читают формат Graph6 последовательно (если только Python каким-то образом не векторизует циклы, в чем я сомневаюсь).

Декодирование (Di)Graph6 по сути делает следующее:
  • Создает вектор-строку v на основе значений char
  • (Условно) вычитает -63 (может быть векторизован)
  • Распакуйте байты в биты (предпочтительно в группы по шесть штук)
  • Используйте битовый вектор, чтобы добавить значение ребра [i,j] в массив A numpy.

Код: Выделить всё

    @classmethod
def from_graph6(cls, text: str = None, path=""):
"""
Read graph6.
Yes, it imports a whole file to memory.
"""
if path:
# read from file
raise NotImplementedError
elif text:
# TODO: strip header
# if data.startswith(">>graph6

Вернуться в «Python»