我需要为不同的输入值并行运行一个函数。问题是我需要为每次迭代获取函数的输出(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
使用多处理的经验吗?
否则,有什么方法可以完成我需要的吗?
谢谢 !