2011-02-08 43 views
2

我有4個系統,其中一個我用作主站,其餘3個用作從站。我想在客戶端系統中執行一組函數並取回結果,爲了實現這一點,我以前使用過並行Python,不幸只要在其中創建job_server,它就會在內部使用所有系統執行給定函數。我想單獨分配一個特定的函數在單個客戶端機器上執行,我不知道如何繼續編碼。 python中是否有框架,允許用戶這樣做?如何使用python將作業安排到客戶端系統?

回答

1

在過去幾年中,Pycon曾經談論過一個通過ssh管理遠程進程的工具,聽起來非常酷,我打算退房。我已經忘記了這個工具是什麼,但你可以通過查看過去幾年的Pycon會談來找到它。

Python Parallel Processing wiki page有很多工具可以幫助你。

1

我不完全明白你現在擁有什麼和你想要做什麼。 Pyro易於使用,速度非常快,並且可以讓多個python進程(在多個系統上)相互交互。看看那個。你需要確保所有的東西都在運行,所以他們正在監聽命令,但這並不難。

+0

像ParallelPython並代表用戶的一切,它使艱難的齧合定製,在所有客戶端系統正在執行一個功能良好的工具,也沒有規定,我可以手動assgn每個作業到每個客戶端節點,正如你所提到的,必須從客戶端收聽,我如何去建設它。 – Rahul 2011-02-08 17:35:18

1

Pythomnic你可以在多臺服務器交換同步調用像這樣多個進程:

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

所以你eiher可以有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 
相關問題