使用python在多个服务器上分配作业

时间:2015-01-26 17:20:40

标签: python ipython distributed

我目前有一个可执行文件,在运行时使用我服务器上的所有核心。我想添加另一台服务器,并在两台计算机之间分配作业,但仍然每个作业使用它运行的计算机上的所有核心。如果两台机器都忙,我需要排队下一个作业,直到其中一台机器空闲为止。

我认为这可能是由python控制的,但是我是一个新手并且不确定哪个python包最适合这个问题。

我喜欢" heapq"用于排队作业的包,但它看起来像是为单个服务器使用而设计的。然后我研究了Ipython.parallel,但它似乎更适合为每个核心(在一个或多个服务器上)创建一个单独的小作业。

我在这里看到了一个巨大的不同选项列表(https://wiki.python.org/moin/ParallelProcessing),但我可以通过一些指导来解决这样的问题。

任何人都可以建议一个可以帮助解决这个问题的方法,或者采用不同的方式来解决它吗?

1 个答案:

答案 0 :(得分:3)

Celery完全符合您的要求 - 可以轻松地在多台(多台)机器上分配任务队列。

请参阅the Celery tutorial开始使用。

或者,IPython内置了基于ZeroMQ的多处理库;见the introduction。我以前没用过这个,但它看起来非常简单。