2012-09-02 43 views
2

我想分裂一个python程序的执行到两个不同的机器。我想知道是否有办法在另一台机器上调用python解释器。不在另一台机器上运行脚本,而是将执行任务分成两台机器。分布式python编程

在接下来的几个月里,我将教授自己的分布式编程,我认为这将是一个很好的开始。

我认为第一步是用一台机器调用另一台机器并发送一个程序。那么下一步就是两台机器一起执行相同的程序并进行通信以避免问题。第三步是三个机等

建议,提示和想法都欢迎...

+0

您可能想要查看[在Python中的并行处理和多处理](http://wiki.python.org/moin/ParallelProcessing)中列出的资源。它认为,除其他外,[jug](http://luispedro.org/software/jug)可以做你想做的。 – unutbu

+0

尼斯链接。我认为pp(http://www.parallelpython.com)是我正在寻找的。其实PP是我想写的,所以看看他们的代码将会使我受益,我认为 –

回答

2

Disclamer:我是SCOOP的开发者。对于分布式处理,您可能想要熟悉的基于数据的技术是MPI标准(对于多计算机,使用mpi4py [首选]或pympi)以及允许远程计算的标准多处理模块(但是很难我的观点)。

但是,您应该从基于任务的框架开始。它们提供了简单和用户友好的用法。在创建SCOOP时,这两者都是最为关注的焦点。你可以尝试pip -U scoop。在Windows上,您可能希望先使用their executable installers安装PyZMQ。您可以查看提供的示例并使用各种参数来了解导致性能下降的原因或轻松增加的原因。我鼓励您将其与其他替代方法(如Celery)进行类似的工作进行比较。

这两个框架都允许远程启动Python程序。更重要的是,它为你做了并行处理,而你只需要为它们提供任务。

您可能想要检查Fabric,以便设置远程环境或甚至远程控制或启动脚本。

+0

谢谢。我喜欢你先介绍标准。我非常熟悉pip和结构,但是结构允许我在其他主机上运行远程shell命令(包括运行py脚本),这是我想要做的。看来我应该看看pp;一个任务分配库,然后开始写我自己的图书馆进行练习。 –

0

有MPI版本的Python [1][2]

MPI(消息传递接口)是一种标准化的接口,并因为你会发现它也是在C,Java的,(Fortran语言)等

它能让你的流程,远程运行之间的沟通很是凉爽。您使用这些消息进行同步和传递信息。

你也有集体行动,如broadcastgatherreduce

0

看一看RPyC,你可能会发现它有用。