sol*_*sol 5 python parallel-processing
感谢您的所有教学答案和使用python库; o)
NPE*_*NPE 11
根据我的经验,多线程可能不会成为加快速度的可行选择(由于Global Interpreter Lock).
一个很好的选择是multiprocessing模块.这可能会或可能不会很好,取决于您最终必须从一个进程传递到另一个进程的数据量.
另一个好的选择是考虑使用numpy你的计算(如果你还没有).如果您可以对代码进行矢量化,那么即使在单核上,您也应该能够实现显着的加速.根据您正在做什么以及您的构建numpy,它甚至可以透明地将计算分布在多个核心上.
编辑以下是使用multiprocessing模块执行简单计算的完整示例.它使用四个过程来计算从0到9的数字的平方.
from multiprocessing import Pool
def f(x):
return x*x
if __name__ == '__main__':
pool = Pool(processes=4) # start 4 worker processes
inputs = range(10)
result = pool.map(f, inputs)
print result
Run Code Online (Sandbox Code Playgroud)
这只是一个简单的例子.鉴于其微不足道的性质f(),这个并行版本几乎肯定会比连续计算相同的东西慢.