[英]Limits of Python multiprocessing.Pool
我经常运行耗时的程序。 我有机会访问需要504个处理器的群集,但是客户服务速度很慢,所以我向您求助。 我正在使用一个非常简单的应用程序,如下所示:
import multiprocessing
def function(data):
data = complicated_function_I_was_given(data)
with open('unique_id', 'w') as f:
f.write(data)
pool = multiprocessing.Pool(504)
pool.map(function, data_iterator)
现在,尽管我可以看到过程开始了(“ complicated_function_I_was_given”写了很多废话,但使用了唯一的名称,因此我确信不会发生冲突),但是过程似乎真的很慢。 我希望data_iterator
某些data
可以立即处理,尽管有些数据需要几天的时间,但是1天后什么也没产生。 可能是multiprocessing.Pool()有限制吗? 还是它没有将进程分布在不同的节点上(我知道每个节点都有12个核心)? 我正在使用python2.6.5。
您可能会尝试使用Python的许多并行库之一来扩展工作,我还没有听说过可以通过多处理在这么多的处理器上扩展工作。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.