一尘不染

使用多处理模块进行集群计算

python

我对使用计算机集群运行Python程序感兴趣。过去我一直在使用Python
MPI接口,但是由于在编译/安装这些接口时遇到困难,我更喜欢使用内置模块(例如Python的多处理模块)的解决方案。

我真正想做的就是设置一个multiprocessing.Pool跨整个计算机集群的实例,并运行一个Pool.map(...)。这是可能/容易做到的事情吗?

如果这不可能,那么我至少希望能够Process从中央脚本在每个节点上为每个节点使用不同参数来启动实例。


阅读 114

收藏
2020-12-20

共1个答案

一尘不染

如果通过集群计算来表示分布式存储系统(多个节点而不是SMP),那么Python的多重处理可能不是合适的选择。它可以产生多个进程,但它们仍将绑定在单个节点内。

您将需要一个框架来处理跨多个节点的进程,并为处理器之间的通信提供一种机制。(几乎是MPI所做的)。

有关有助于集群计算的框架列表,请参见Python
wiki
上的“并行处理”页面。

从列表中看ppjugpyrocelery似乎是明智的选择,尽管由于我对它们中的任何一个都没有经验(我主要使用MPI),所以我不能亲自担保。

如果安装/使用的简便性很重要,那么我将从探索开始jug。它易于安装支持常见的批处理群集系统,并且文件记录良好

2020-12-20