python - 如何在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, lambda x, y: 1)[0]
print(ai, out[i])
通常我将我的工作作为(PBS 脚本)运行:
mpirun -np 50 python myscript.py > output.txt
我的想法是我会同时运行每个循环,比如两次在 50 个处理器上运行 100 个循环以加快计算速度!我不知道这是否是并行作业在集群上运行的方式,但我正在努力学习。请帮忙!
注意:我使用的是 python 3。我已经安装mpi4py
并multiprocess
希望它们有用,但无法实现除此之外的任何东西。
我对 python 的计算知识处于纽曼计算物理学的水平。如果您能提供一些关于并行计算的额外参考资料,对我将非常有帮助。
解决方案
推荐阅读
- tsql - 多参数TSQL过程
- git - 使用 git-svn 添加(不创建)远程分支到本地仓库
- oracle11g - Oracle 在提示刷新时给出错误消息
- java - 多线程错误竞争条件问题
- r - 更改 facet_grid 内单个图的线条大小
- powershell - Powershell转义变量中的空格
- python - scipy.linalg.sparse.eigsh 为正半定矩阵返回负的和不一致的特征值
- apache-nifi - 无法从 ExecuteScript 的流文件中将内容拆分为多个流文件
- php - 在 Magento 2 中以编程方式将新产品添加到现有购物车时,产品价格为 0
- reactjs - Rekit -React Bud 部署