我如何解决或报告Pathos和pypy之间的不兼容性

问题描述 投票:0回答:1

我有一些使用simPy框架编写的仿真代码。要使用不同的参数运行多个模拟,我将无法使用标准的Python multiprocessing module,因为它不会成功地使我需要传递给模拟实例的所有参数都被酸洗。我通过切换到pathos多处理模块来解决了这个问题(是的!)-但是当调用pathos / starmap组合时,pypy interpreter崩溃了。

pathos / multiprocessing池调用是:

with pathos.helpers.mp.Pool() as pool:
   results = pool.starmap(runSim, argsToRun)

argsToRun是特定于该模拟运行的参数列表。大多数都是无聊的整数或字符串,但是一个参数是simpy Environment的一个实例,标准python无法对其进行腌制-这最初是促使我转向悲痛的原因。

[目前,我不确定这是否有望奏效(这意味着是否有人会主动去看它),如果我清除了那座桥,我不确定是否可以使用悲痛的一面,或者pypy的一面。在Pypy而不是cPython中运行这些仿真使我的性能提高了4到8倍,但是我也拥有32核机器,因此能够运行多处理显得更加重要。那样我很贪婪,所以我真的想让两个人在一起工作,而且似乎会有其他人将从中受益。 ;)

Traceback (most recent call last):
  File "/users/lwobker/scripts/pypy/site-packages/multiprocess/process.py", line 258, in _bootstrap
    self.run()
  File "/users/lwobker/scripts/pypy/site-packages/multiprocess/process.py", line 93, in run
    self._target(*self._args, **self._kwargs)
  File "/users/lwobker/scripts/pypy/site-packages/multiprocess/pool.py", line 108, in worker
    task = get()
  File "/users/lwobker/scripts/pypy/site-packages/multiprocess/queues.py", line 340, in get
    return _ForkingPickler.loads(res)
  File "/users/lwobker/scripts/pypy/site-packages/dill/_dill.py", line 275, in loads
    return load(file, ignore, **kwds)
  File "/users/lwobker/scripts/pypy/site-packages/dill/_dill.py", line 270, in load
    return Unpickler(file, ignore=ignore, **kwds).load()
  File "/users/lwobker/scripts/pypy/site-packages/dill/_dill.py", line 472, in load
    obj = StockUnpickler.load(self)
  File "/users/lwobker/pypy/pypy3.6-7.2.0-linux_x86_64-portable/lib-python/3/pickle.py", line 1070, in load
    dispatch[key[0]](self)
  File "/users/lwobker/pypy/pypy3.6-7.2.0-linux_x86_64-portable/lib-python/3/pickle.py", line 1418, in load_reduce
    stack[-1] = func(*args)
AttributeError: 'Environment' object has no attribute 'Process'
pypy dill pathos
1个回答
0
投票

我同时看到/users/lwobker/scripts/pypy/users/lwobker/pypy/pypy3.6-7.2.0-linux_x86_64-portable。他们是否使用具有Environment的库的相同版本?

最新问题
© www.soinside.com 2019 - 2024. All rights reserved.