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

2023-12-05

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

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

如果这是不可能的,我希望至少能够开始Process来自中央脚本的任何节点上的实例,每个节点具有不同的参数。


如果集群计算指的是分布式内存系统(多个节点而不是 SMP),那么 Python 的多处理可能不是一个合适的选择。它可以生成多个进程,但它们仍然会绑定在单个节点内。

您需要的是一个框架,该框架可以处理跨多个节点的进程生成,并提供处理器之间的通信机制。 (与 MPI 的作用差不多)。

请参阅页面Python wiki 上的并行处理获取有助于集群计算的框架列表。

从名单来看,pp, jug, pyro and celery看起来像是明智的选择,尽管我不能亲自担保任何一个,因为我对其中任何一个都没有经验(我主要使用 MPI)。

如果易于安装/使用很重要,我会从探索开始jug. It's 易于安装, 支持常见的批处理集群系统,并且看起来有据可查.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用多处理模块进行集群计算 的相关文章

随机推荐