问题可能微不足道,但我没有找到一个直截了当的答案。
我在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
。请帮帮我!
答案 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=',')