在python中并行化向量式计算的乘法

时间:2012-06-20 11:34:06

标签: python multithreading vector

我有一大堆代码,比如

for i in range(0, len(a))
    b[i] = func(a[i])

其中a和b是相同长度的数组,a是给定的(和大),func是一些具有大量局部变量但不使用任何全局变量的函数。

我想在多个CPU之间分配func的计算。大概我需要使用多处理模块,但我没有找到任何相关的例子。你能帮忙吗?感谢。

2 个答案:

答案 0 :(得分:3)

请参阅multiprocessing docs中的第一个代码示例:

from multiprocessing import Pool

# you could define `func`, `a` here

if __name__=="__main__":
    p = Pool() # use all available CPU cores
    b = p.map(func, a)

答案 1 :(得分:1)

使用进程池。您可以在我的github中看到完整的示例:https://github.com/mariazverina/codejam/blob/master/src/main.py

from multiprocessing import Pool

p = Pool(4)  # set to number of cores
b = p.map(func, a)