如何在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。我已经安装了mpi4pymultiprocess,希望它们会有用,但无法实现此功能

我对python的计算知识是在纽曼(Newman)的计算物理领域。如果您能提供有关并行计算的其他参考,对我将非常有帮助。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)