我对使用计算机集群运行Python程序感兴趣。过去我一直在使用Python MPI接口,但是由于在编译/安装这些接口时遇到困难,我更喜欢使用内置模块(例如Python的多处理模块)的解决方案。
我真正想做的就是设置一个multiprocessing.Pool
跨整个计算机集群的实例,并运行一个Pool.map(...)
。这是可能/容易做到的事情吗?
如果这不可能,那么我至少希望能够Process
从中央脚本在每个节点上为每个节点使用不同参数来启动实例。
如果通过集群计算来表示分布式内存系统(多个节点而不是SMP),那么Python的多重处理可能不是合适的选择。它可以产生多个进程,但它们仍将绑定在单个节点内。
您将需要一个框架来处理跨多个节点的进程,并提供一种用于处理器之间通信的机制。(几乎是MPI所做的)。
有关有助于群集计算的框架列表,请参见Python Wiki上的“ 并行处理 ”页面。
从列表中看,pp,jug,pyro和celery似乎是明智的选择,尽管由于我对它们中的任何一个都没有经验(我主要使用MPI),所以我不能亲自担保。
如果安装/使用的便利性很重要,那么我将从探索开始jug
。它易于安装,支持常见的批处理群集系统,并且文件记录良好。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句