2012-09-02 45 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,你可能會發現它有用。