Как я могу эффективно параллелизировать и оптимизировать крупномасштабный алгоритм обхода графика в Python для обработкиPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Как я могу эффективно параллелизировать и оптимизировать крупномасштабный алгоритм обхода графика в Python для обработки

Сообщение Anonymous »

Я работаю над Python Project, который включает в себя обработку очень большого графика - у него миллионы узлов и краев. Цель состоит в том, чтобы выполнить поиск в ширине (BFS) или поиск в глубине (DFS) из данного начального узла для вычисления самых коротких путей или достижимости. < /P>
Вот задача: < /p>

[*] График слишком большой, чтобы вписаться в память о том, что нужно, если он не будет, чтобы быть вновь, не будет, если утечено, если утечено. Использование нескольких ядер ЦП. Словарь Python для смежности, но он работает медленно и попадает в пределы памяти: < /p>

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

from collections import deque

def bfs(graph, start):
visited = set()
queue = deque([start])
while queue:
node = queue.popleft()
if node not in visited:
visited.add(node)
queue.extend(graph.get(node, []))
return visited
Вопрос

Как я могу параллелизировать BFS/DFS в Python, чтобы ускорить обход? Должен ли я использовать многопроцестрой , comurrent.features или другой подход? />
Основные BFS с использованием встроенного набора Python , deque и dict , как показано в коде. />
[*] Я попытался использовать многопроцестройный модуль для запуска нескольких экземпляров BFS параллельно от разных отправленных точек, но координация общего состояния и сочетание результатов без условий гонки стало сложным.

[*] В целом

. Графики. /> быстро пройти график (в течение нескольких секунд) даже с миллионами узлов. < /p>
< /li>
Используйте многоядерную обработку для ускорения обезвреживания. < /p>
< /li>
эффективно управлять памятью, не сбиваясь из -за сбоев из -за ограничений Ram. /> В идеале, потоковые данные или сохраняют только части графика в памяти в любое время.>

Подробнее здесь: https://stackoverflow.com/questions/796 ... versal-alg
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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