Не могу засолить в параллельных вычислениях. Может ли [укроп] или другой инструмент засечь графики [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
используя многопроцессорность?
Иначе, есть ли способ выполнить то, что мне нужно?
Спасибо!