pypy - 如何解决或报告 pathos 和 pypy 之间的不兼容问题
问题描述
我有一些使用simPy框架编写的模拟代码。要使用不同的参数运行多个模拟,我无法使用标准的 Python多处理模块,因为它不会成功腌制我需要传递给模拟实例的所有参数。我通过切换到 pathos 多处理模块(耶!)解决了这个问题——但是当调用 pathos/starmap 组合时 pypy 解释器崩溃了。
pathos/multiprocessing 池调用是:
with pathos.helpers.mp.Pool() as pool:
results = pool.starmap(runSim, argsToRun)
argsToRun 是特定于该模拟运行的参数列表。大多数都是无聊的整数或字符串,但一个参数是一个简单的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'
解决方案
我同时看到/users/lwobker/scripts/pypy
和/users/lwobker/pypy/pypy3.6-7.2.0-linux_x86_64-portable
。他们是否使用相同版本的任何库Environment
?
推荐阅读
- android - 检查是否在另一个活动android中检查了切换按钮
- angular - 如何在角度 4/6 中创建由 for 循环生成的切换按钮
- powershell - 如何阻止 azure-devops 发布管道失败
- android - Android Studio 3.2 ERROR 资源链接失败 Style.xml 问题
- html - 您可以在没有 javascript 的情况下启用禁用的按钮吗?
- python - 使用 Python 删除包含字符或字母字符串的文本文件中的单词
- javascript - 原型无法传递属性值,甚至创建新的“this”
- office365 - 找不到我的 Office 365 目录/订阅 ID
- java - 在 Spring Data TypedAggregation 上指定索引
- c++ - 没有基类的限定符,派生类不能访问基类的受保护成员变量