如何使用python将作业调度到客户端系统?

时间:2011-02-08 17:05:59

标签: python

我有4个系统,其中一个用作主设备,其余3个用作从设备。我想在客户端系统中执行一组函数并获取结果,以实现我之前使用过的并行Python,不幸的是,只要在其中创建了job_server,它就会在内部使用所有系统执行给定的函数。我想单独指定要在单个客户端计算机上执行的特定功能,我不知道如何继续编码。 python中是否有任何框架允许用户这样做?

5 个答案:

答案 0 :(得分:1)

在过去的几年中,Pycon就一个通过ssh管理远程进程的工具进行了一次谈话,听起来非常酷,我打算退房。我忘记了这个工具是什么,但你可以通过查看过去几年的Pycon会谈来找到它。

Python Parallel Processing wiki page有一大堆可能对您有所帮助的工具。

答案 1 :(得分:1)

multiprocessing个模块:http://docs.python.org/library/multiprocessing.html 您可以在那里找到完全符合要求的示例(请参阅Remote Managers)。

作为旁注:我很快偶然发现了multiprocessing模块中的限制,现在使用PyRo作为中间件。它非常简单和强大,但需要更多的工作来建立一个基本框架。

答案 2 :(得分:1)

我不太明白你现在拥有什么以及你想做什么。 Pyro易于使用,速度非常快且文档齐全,可让多个python进程(在多个系统上)相互交互。看看那个。你需要确保所有这些东西都在运行,这样他们才能听取命令,但这并不太难。

答案 3 :(得分:1)

Pythomnic中,您可以在多个服务器上拥有多个进程,交换同步调用,如下所示:

result = pmnc("other_process").module.method(...) # invokes remote method

因此,您可以使用3个明确命名的从属设备并手动选择呼叫目标:

pmnc("slave_1").foo.bar() # calls bar() in foo.py on slave_1

或者拥有相同名称的奴隶并让框架选择任何可用的(如果它们当然可以互换)

pmnc("slave").foo.bar() # calls bar() in foo.py on any slave

答案 4 :(得分:1)

结帐RPyc