使用mpi4py

时间:2017-05-25 15:47:58

标签: python mpi4py

问题可能微不足道,但我没有找到一个直截了当的答案。

我在Python 3.6中编写了一个for循环,我希望将其并行化。它如下:

# Main file
import scipy
a=1
b=2   # ... some parameters defined
for i in range (10):
    (ans_1,ans_2) = f(a,b,i)

# Function file
def f(x,y,j):
    c = a+b    # Some calculations
    scipy.savetxt("data.csv",delimiter=',')    # Saving required variables

如何使用Python 3.6中的mpi4py模块在​​我的主文件中并行化for循环?例如,我想指定我们在Matlab中使用的处理器数量:parfor(20)并在循环中键入parfor而不是for。请帮帮我!

1 个答案:

答案 0 :(得分:-2)

为什么你需要MPI? ,我建议使用像joblib这样的东西...... https://pythonhosted.org/joblib/parallel.html

在你的情况下,像

from joblib import Parallel, delayed
# parallel on 20 cores:
Parallel(n_jobs=20)(delayed(f)((a,b,i)) for i in range(10))
# Function file
def f(params):
    x,y,j = params
    c = a+b    # Some calculations
    scipy.savetxt("data.csv",delimiter=',')