Python计算集群

时间:2009-10-21 17:00:33

标签: python python-3.x parallel-processing cluster-computing

是否可以通过编写telnet服务器来创建python集群,然后telnet-ing命令和来回输出?有没有人对python计算集群有更好的想法? PS。最好是对于python 3.x,如果有人知道如何。

7 个答案:

答案 0 :(得分:17)

Python wiki拥有一个非常全面的Python cluster computing libraries and tools列表。您可能对Parallel Python特别感兴趣。

编辑:有一个新的图书馆是IMHO特别擅长群集:execnet。它小而简单。它似乎比标准的multiprocessing模块具有更少的错误。

答案 1 :(得分:15)

您可以看到大多数可用于Python 3的第三方软件包here;与集群计算相关的是mpi4py - 大多数其他分布式计算工具(如pyro)仍然只是Python-2,但MPI是集群分布式计算的领先标准,并且很好地研究(我没有使用mpi4py的直接经验) Python 3,但是,据传闻我认为这是一个很好的实现。)

主要的替代方案是Python自己的内置multiprocessing,如果您不想接口符合MPI标准但可能无法用Python编码的现有节点,它也可以很好地扩展。

自己滚动没有真正的附加值(正如阿特伍德所说,不要重新发明轮子,除非你的目的只是为了更好地理解轮子! - ) - 使用经过实践检验的广泛解决方案之一,已经过代表您测试,调试和优化! - )

答案 2 :(得分:5)

查看这些

http://www.parallelpython.com/

http://pyro.sourceforge.net/

我已经使用了两者,并且两者都非常适合分布式计算 有关更详细的选项列表,请参阅 http://wiki.python.org/moin/ParallelProcessing

如果您想在远程计算机上自动执行某些操作,那么telnet的更好替代方法就是http://pydsh.sourceforge.net/

中的ssh

答案 3 :(得分:4)

你想做什么样的事情?您可能想查看hadoop。后端,繁重的工作是在java中完成的,但是有一个python接口,因此你可以编写python脚本来创建和发送输入,以及处理结果。

答案 4 :(得分:2)

如果您需要编写管理脚本,请查看ClusterShell Python库,或/和它的并行shell clush 。在处理节点集时也很有用( man nodeset )。

答案 5 :(得分:1)

我认为IPython.parallel是要走的路。在过去的一年半里,我一直在广泛使用它。它允许您根据需要以交互方式使用任意数量的工作节点。如果您在AWS上,StarCluster是一个很好的方法,可以使用尽可能多的EC2节点快速轻松地启动和运行IPython.parallel。 (如果需要,它还可以自动安装Hadoop和各种其他有用的工具。)使用它有一些技巧。 (例如,您不希望通过IPython.parallel接口本身发送大量数据。最好分发一个脚本,单独下载每个引擎上的数据块。)但总的来说,我发现它是一种非常简单的分布式处理方式( WAY 比Hadoop更好!)

答案 6 :(得分:-2)

“是否可以创建一个python集群”

我喜欢/没有问题。还有其他你想知道的事情吗?

(请注意,Python 3还没有很少的第三方库,因此您可能希望暂时使用Python 2.)