python教程—使用多处理模块进行集群计算-Python实用宝典

python教程—使用多处理模块进行集群计算

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

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

我真正想做的是建立一个多处理。跨整个计算机集群并运行池.map(…)的池实例。这件事可能/容易做吗?

如果这是不可能的,我希望至少能够从具有每个节点不同参数的中心脚本启动任意节点上的流程实例。

回答

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

您将需要一个框架来处理跨多个节点的进程生成,并为处理器之间的通信提供一种机制。(和MPI差不多)。

在Python wiki上查看并行处理的页面,了解有助于集群计算的框架列表。

从列表中,< a href = " http://www.parallelpython.com/ " rel = " noreferrer " >页< / >、< a href = " http://luispedro.org/software/jug " rel = " noreferrer " >壶< / >、< a href = " http://pythonhosted.org/Pyro4/ " rel = " noreferrer " >烟花< / >和< a href = " http://celeryproject.org/ " rel = " noreferrer " >芹菜< / >看起来像明智的选择,虽然我不能亲自保证任何因为我没有经验(我主要使用MPI)。

如果安装/使用的方便性很重要,我将从探索jug开始。这是< a href = " https://jug.readthedocs.org/en/latest/ how-do-i-get-jug”rel = " noreferrer " >易于安装< / >,< a href = " http://jug.readthedocs.org/en/latest/faq.html # will-jug-work-on-batch-cluster-systems-like-sge-or-pbs”rel = " noreferrer " > < / >,支持常见的批量的集群系统,< a href = " http://jug.readthedocs.org/ " rel = " noreferrer " > < / >。

​Python实用宝典 (pythondict.com)
不只是一个宝典
欢迎关注公众号:Python实用宝典

本文由 Python实用宝典 作者:Python实用宝典 发表,其版权均为 Python实用宝典 所有,文章内容系作者个人观点,不代表 Python实用宝典 对观点赞同或支持。如需转载,请注明文章来源。
0

发表评论