Python实现并行备忘

先把工做写成单参数函数func,而后调用multiprocessing.Pool,设置计算使用的核心数,经过map将参数分配给func进行计算,简单实现以下。html

from multiprocessing import Pool

def func(parameter):
    ...

pool = Pool(4)  # set the pool size to 4
pool.map(func, parameter)
pool.close()
pool.join()

上述代码使用4个核心进行计算,运行后用top查看进程能够看到四个相同的Python进程,单个进程CPU占用率最高100%。这种多进程实现适用于CPU密集型工做。python

多参数函数的并行须要对参数作进一步封装,能够参见https://www.rawidn.com/posts/Python-multiprocessing-for-multiple-arguments.htmlsegmentfault

对于IO密集型工做能够调用multiprocessing的子库dummy实现,导入部分以下,其余代码不变。函数

from multiprocessing.dummy import Pool

运行时只有一个Python进程,但其CPU占用率能够超过100%。post

更详细的说明能够参见http://www.javashuo.com/article/p-sxxdkowt-du.html测试

此外,还能够经过Parallel Python模块实现,但目前还没具体测试,其使用能够看见http://wiki.jikexueyuan.com/project/python-actual-combat/tutorial-25.htmlcode

相关文章
相关标签/搜索