Не могу засолить в параллельных вычислениях. Может ли [укроп] или другой инструмент засечь графики [networkit]?

Мне нужно запустить функцию параллельно для различных входных значений. Дело в том, что мне нужно получать выходные данные (график NetworKit) функции для каждой итерации. Я пытался использовать joblib, Multiprocessing.Process а также Queue, pathos но у меня всегда одна и та же ошибка

can't pickle _NetworKit.Graph objects

Вот фрагмент кода, который я пытаюсь распараллелить, с примером joblib:

from networkit import Graph
from joblib    import Parallel, delayed

def f( i ):
    graph = networkit.Graph()
    graph.addNode()

    # ... Some other graph computations ...

    return graph

res = Parallel( n_jobs = 2 ) ( delayed( f )( i ) for i in np.arange( 5 ) )

Я понимаю, что все эти библиотеки используют pickle сериализовать объект и networkit объекты не выбираются. Я прочитал это dill позволяет нам мариновать не выбираемые предметы, есть ли у кого-нибудь опыт работы с dill используя многопроцессорность?

Иначе, есть ли способ выполнить то, что мне нужно?

Спасибо!

0 ответов

Другие вопросы по тегам