问题描述
我对并行计算是完全陌生的,实际上,除了在集群上运行一些可用代码(用C ++编写)外,我从来没有自己编写过代码。请体谅!我正在尝试在群集上并行运行for
循环以进行n次集成。我想要的原型是:
import numpy as np
from scipy import integrate
f = lambda z,y,x: a*(x*y*z)
a = np.linspace(1,1000,100)
out = np.zeros(100)
for i,ai in enumerate(a):
a = ai
out[i] = integrate.tplquad(f,1,2,lambda x: 2,lambda x: 3,lambda x,y: 0,y: 1)[0]
print(ai,out[i])
通常,我以(PBS脚本)的身份运行我的工作:
mpirun -np 50 python myscript.py > output.txt
我的想法是我将同时运行每个循环,例如在50个处理器上两次运行100个循环,以加快计算速度!我不知道并行作业是否在集群上运行,但是我正在尝试学习。请帮忙!
注意:我正在使用python3。我已经安装了mpi4py
和multiprocess
,希望它们会有用,但无法实现此功能。
我对python的计算知识是在纽曼(Newman)的计算物理领域。如果您能提供有关并行计算的其他参考,对我将非常有帮助。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)