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

有帮助吗?

解决方案

Python wiki提供了一个非常全面的 Python集群计算库和工具列表。您可能对并行Python 特别感兴趣。

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

其他提示

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

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

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

查看这些

http://www.parallelpython.com/

http://pyro.sourceforge.net/

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

如果你想在远程机器上自动执行某些东西,更好的替代telnet就是ssh,如 http:// pydsh .sourceforge.net /

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

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

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

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

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

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top