我正在寻找针对Python(Scipy,Numpy)的MATLAB parfor的明确答案。
是否有类似于parfor的解决方案?如果没有,创建一个的复杂性是什么?
更新:这是我需要加快速度的典型数值计算代码
import numpy as np
N = 2000
output = np.zeros([N,N])
for i in range(N):
for j in range(N):
output[i,j] = HeavyComputationThatIsThreadSafe(i,j)
繁重的计算功能的一个示例是:
import scipy.optimize
def HeavyComputationThatIsThreadSafe(i,j):
n = i * j
return scipy.optimize.anneal(lambda x: np.sum((x-np.arange(n)**2)), np.random.random((n,1)))[0][0,0]
最佳答案
有很多Python frameworks for parallel computing。我碰巧最喜欢的一个是IPython,但是我对其他任何一个都不了解。在IPython中,parfor的一个类似物是client.MultiEngineClient.map()
或the documentation on quick and easy parallelism中的其他一些构造。
关于python - Parfor Python,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4682429/