我有一大堆代码,比如
for i in range(0, len(a))
b[i] = func(a[i])
其中a和b是相同长度的数组,a是给定的(和大),func是一些具有大量局部变量但不使用任何全局变量的函数。
我想在多个CPU之间分配func的计算。大概我需要使用多处理模块,但我没有找到任何相关的例子。你能帮忙吗?感谢。
答案 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)