我正在使用并行python在多台计算机上进行一些数字运算。一切都很好,直到我认为包括一些课程会很好。
以下是提交作业的代码:
for i in xrange(n_cpus):
jobs.append(job_server.submit(self.fcalc_rs_rp, (ch_lambdas[i], thetas, ch_n_arr[i]), (), ("import numpy as np", "from SimulationOO import *")))
它在一台计算机上工作得很好(也使用所有核心,很好),但如果我尝试使用另一台服务器,计算永远不会停止。
问题是服务器没有cpu负载,因为它无法加载from SimulationOO import *
,因为服务器上不存在该文件。
一种解决方法是将方法 .fcalc_rs_rp()
放在类之外并使其成为一个函数但实际上我希望将该函数放在一个类中,也许你有一个好主意?
如果我尝试不使用from SimulationOO import *
部分而是将所有函数定义为depfuncs,则会给出错误AttributeError: 'module' object has no attribute 'Layer'
,其中Layer
是我正在使用的类之一。
你有什么建议吗,我怎么能这样做?
谢谢