如何解决如何在Python中并行执行for循环中的集成以在CLUSTER中运行
我对并行计算是完全陌生的,实际上,除了在集群上运行一些可用代码(用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 举报,一经查实,本站将立刻删除。