5

我有一大段代码,比如

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

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

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

4

2 回答 2

3

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

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)
于 2012-06-20T11:53:37.807 回答
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)
于 2012-06-20T11:55:28.093 回答