我正在寻找针对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/

10-11 16:01