Python多处理池的限制
我经常运行一个耗时的程序。我有机会访问一个需要504个处理器的集群,但客户服务速度很慢,所以我向您求助。我正在使用一个非常简单的应用程序,如下所示:Python多处理池的限制,python,multiprocessing,cluster-computing,Python,Multiprocessing,Cluster Computing,我经常运行一个耗时的程序。我有机会访问一个需要504个处理器的集群,但客户服务速度很慢,所以我向您求助。我正在使用一个非常简单的应用程序,如下所示: import multiprocessing def function(data): data = complicated_function_I_was_given(data) with open('unique_id', 'w') as f: f.write(data) pool = multiprocessi
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)
现在,虽然我可以看到过程开始了“复杂的函数”写了一堆废话,但是有唯一的名称,所以我确信没有冲突,过程看起来真的很慢。我希望data_iterator中的一些数据能够立即得到处理,尽管有些数据需要几天的时间,但在1天后什么也没有产生。可能是多处理池有限制吗?或者它没有在不同的节点上分配进程我知道每个节点有12个核?我正在使用python2.6.5。您可以尝试使用Python中的一种来扩展工作,我从未听说过使用多处理器来扩展这么多处理器的工作 或者它没有在不同的节点上分配进程我知道每个节点有12个核?我正在使用python2.6.5 我认为这是您的问题:除非您的集群体系结构非常不寻常,并且所有处理器似乎都在同一台逻辑机器上,否则多处理只能访问本地内核。您可能需要使用不同的并行化库
另请参见。谢谢您的链接,我认为您是对的。我不知道我怎么会错过那个问题!现在要玩mpi4py than。