使用parallelpython,我正在尝试将旧的串行代码转换为并行代码,这在很大程度上依赖于具有更改该对象变量的方法的对象。一个剥离的例子,我为了简单而省略了语法:
class Network:
self.adjacency_matrix = [ ... ]
self.state = [ ... ]
self.equilibria = [ ... ]
...
def populate_equilibria(self):
# this function takes every possible value that self.state can be in
# runs the boolean dynamical system
# and writes an integer within self.equilibria for each self.state
# doesn't return anything
我将此方法称为:代码:
j1 = jobserver.submit(net2.populate_equilibria,(),(),("numpy as num"))
这项工作已完成,并且我知道发生了长时间的计算,因此我推测我的代码已运行。
问题是,我是 parallelpython 的新手,我期待在调用该方法时,变量 net2.equilibria 会被相应地写入,我会得到一个修改后的对象 (net2) 。这就是我的代码的工作方式,独立对象具有作用于对象变量的方法。
相反,尽管计算是显而易见的,并且时间合理,但变量 net2.equilibria 保持不变。好像 PP 只接受函数和对象,在别处计算它,但从不返回对象,所以我只剩下旧的了。
我想念什么?
提前致谢。