连续数组上的并行循环的最佳方法

时间:2019-01-02 04:04:28

标签: python-3.x parallel-processing

我有一个函数f(),它遍历二维数组,并将另一个函数g()应用于数组的每个元素,并存储结果。 g()从一个数组元素到另一个数组元素的评估是完全独立的。我想加快速度,因为计算g()很快,但是对大型数组的所有元素进行计算却很慢。

我不熟悉python中的多处理,有人可以提供解决此类问题的最佳方法吗?代码看起来像这样:

def g(x):
    '''some function that is dependent on other python packages'''
    return other_func(x)


def f(arr):
    N = arr.shape[0]
    M = arr.shape[1]
    results = np.zeros_like(arr)

    for i in range(N):
        for j in range(M):
            results[i,j] = g(arr[i,j])

    return results

* update:我们可以假设M = N = 100且对g()的求值花费几秒钟,t <10,因此当前的总运行时间为t * 100 ^ 2。我的机器是配备2.6Ghz i7和16gb ram的macbook pro

0 个答案:

没有答案