带生成器的池:Chunkify

时间:2017-06-21 10:02:40

标签: python python-multiprocessing pathos

我使用pathos.Pool,但我认为所需的技术与`multiprocessing.Pool。

的技术相当。

我有一个生成器可以生成一大堆(巨大的)要做的事情。

from pathos import ProcessingPool
def doStuff(item):
    return 1

pool = ProcessingPool(nodes=32)
values = pool.map(doStuff, myGenerator)

不幸的是,应用于我生成的项目的函数(此处:doStuff)很快就会清除。因此,到目前为止,我无法通过序列化生成速度提升 - 事实上,代码的多处理版本运行速度比原始版本慢。

我认为这是因为与工作人员完成任务所花费的时间相比,从池中向工作人员提供下一个项目的开销很大。

我认为解决方案是" chunkify"生成的项目:将项目分组到n列表中,然后将它们提供给具有n许多工作者的池(因为所有作业应该花费几乎很长的时间)。或者可能是一个不太极端的版本。

在Pytohn实现这一目标的好方法是什么?

0 个答案:

没有答案