我需要为不同的输入值并行运行一个函数。问题是我需要为每次迭代获取函数的输出(NetworKit Graph)。我尝试使用 joblib
, Multiprocessing.Process
和 Queue
, {{1} } ,但我总是有同样的错误
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
有任何经验?
否则,有什么方法可以实现我的需要吗?
谢谢!