如何修复pathos.helpers多处理模块中的AssertionError?

时间:2019-01-10 03:38:08

标签: python multiprocessing pathos

我正在使用pathos.helpers中基于莳萝的多处理模块,该模块与常规multiprocessing具有一对一的映射。运行良好,直到我开始获得AssertionError为止。

除了我使用的是Mac外,我的问题与Pythons multiprocess module (with dill) gives an unhelpful AssertionError非常相似。我在有和没有pool.close()pool.join()的情况下都尝试过。

pathos.helpers中的模块似乎没有clear()restart()方法-考虑到与multiprocessing的映射,这是有道理的。是否还会像pathos.multiprocessing那样缓存the comment on this question指示的池?如果是,该如何预防?

这是我的代码的简化版本:

from pathos.helpers import mp
if __name__ == '__main__':
    l = mp.Lock()
    pool = mp.Pool(initializer=init, initargs=(l,), processes = 4)
    results = pool.map(run_func, xyz)
    pool.close()
    pool.join()

这是我得到的错误:

Traceback (most recent call last):
  File "run_xyz.py", line 284, in <module>
    results = pool.map(run_func, xyz)
  File "/usr/local/lib/python2.7/site-packages/multiprocess/pool.py", line 253, in map
    return self.map_async(func, iterable, chunksize).get()
  File "/usr/local/lib/python2.7/site-packages/multiprocess/pool.py", line 572, in get
    raise self._value
AssertionError

0 个答案:

没有答案