Python计算集群
有没有可能通过写一个telnet服务器来创建一个Python集群,然后通过telnet来发送命令和接收输出呢?有没有人有更好的想法来搭建一个Python计算集群?
另外,如果有人知道的话,最好是针对Python 3.x的。
7 个回答
看看这些资源
http://www.parallelpython.com/
我用过这两个,它们都非常适合分布式计算。
想要更详细的选项列表,可以查看
http://wiki.python.org/moin/ParallelProcessing
如果你想在远程机器上自动执行一些操作,ssh是比telnet更好的选择,具体可以参考http://pydsh.sourceforge.net/
你可以在这里看到大部分适用于Python 3的第三方包。与集群计算相关的有mpi4py。大多数其他分布式计算工具,比如pyro,目前仍然只支持Python 2。不过,MPI是集群分布式计算的一个主要标准,值得关注(我自己还没有用Python 3试过mpi4py,但听说它的实现还不错)。
另一个主要的选择是Python自带的multiprocessing模块。如果你不想和遵循MPI标准但可能不是用Python编写的现有节点进行交互,这个模块也能很好地扩展。
自己重新开发一个工具其实没有太大必要(正如Atwood所说,不要重复造轮子,除非你只是想更好地理解轮子!)——使用那些已经经过测试、调试和优化的成熟解决方案,省心又省力!
Python的维基网站上有一个非常全面的列表,里面列出了很多关于Python集群计算的库和工具。如果你对并行处理感兴趣,可以特别看看Parallel Python。
补充:最近有一个新的库,我觉得在集群方面特别好用:execnet。这个库小巧简单,而且看起来比标准的multiprocessing
模块更少出现错误。