2
我已经写了一段简单的代码,以加快我的函数f pool.join()之后不停止,使用2个CPU的例子如下所示:多重处理在Python - 过程
if __name__ == '__main__':
pool = Pool(processes = 2)
f0_list = pool.map(f,range(nlocs))
pool.terminate()
pool.join()
final_f0 = np.sum(f0_list,axis=0)
f0_final = final_f0[0:121] # here I get the error message: 'final_f0 not defined'
我的结果'final_f0'是正确的。不过,我期待的是,pool.join()后,所有的进程将结束它似乎并没有这样的情况,这是因为:
- 我还有一个CPU在后台运行,它似乎没有不即使final_f0已被有效返回,也会停止吗?
- 当我如上所述尝试剪切'final_f0'时,出现此错误消息。错误信息多次打印,就好像Python一遍又一遍地运行脚本。
有什么建议吗?
你说你有一个CPU在后台运行 - 你确定CPU的使用实际上是由Python进程引起的吗? ''''''''''''''''''在您调用'join'之前'''''''''''''''''''''''''至于#2,我们需要看到更多的代码,以及获得的实际回溯,以提供帮助。 – dano 2014-09-04 14:12:07
是的,我很确定它是Python,因为我停止了在我的机器上运行的其他程序来检查。至于我在f0_final上的操作,这很简单,我只是试图保留前122个值 - 我更新了我的问题,并提供了更多的细节。 – Neodyme 2014-09-04 14:48:48
你使用的是Windows吗?您应该能够检查任务管理器,以确切了解*使用CPU的过程,以及在终止池后查看是否实际上运行了多个python进程。 – dano 2014-09-04 15:00:26