2010-01-12 97 views
5

Python似乎有many different packages available來協助在基於SMP的系統上或跨羣集並行處理。我有興趣構建一個客戶端服務器系統,其中服務器維護作業隊列和客戶端(本地或遠程)連接並運行作業,直到隊列爲空。在上面列出的軟件包中,哪些是推薦的,爲什麼?Python並行處理庫

編輯:特別是,我寫了一個模擬器這需要在幾個輸入和處理一段時間的事情。我需要從模擬中收集足夠的樣本來估計用戶指定置信區間內的平均值。爲了加快速度,我希望能夠在許多不同的系統上運行模擬,每個系統都會以一定的時間間隔向他們收集的樣本回報服務器。服務器然後計算置信區間並確定客戶端進程是否需要繼續。收集足夠的樣本後,服務器終止所有客戶端模擬,根據過去的結果重新配置模擬,並重復這些過程。

有了這個需要在客戶端和服務器進程之間互通,敢問批次調度是一個可行的解決方案。對不起,我應該更清楚一開始。

+0

看起來你正在尋找一個調度程序? – 2010-01-13 06:06:52

回答

2

有與ParallelPython去。似乎易於使用,並應提供您想要的作業和隊列界面。

0

既然你標記你的問題「科學的計算」,並提到集羣,某種MPI包裝似乎是顯而易見的選擇,如果我們的目標是開發並行應用程序作爲一個可能從標題猜測。然後再次,您的問題中的文字表明您希望開發批量調度程序。所以我不知道你問的是哪個問題。

+0

客戶端進程之間不會進行交互,但隊列/服務器將根據各個客戶端進程的結果進行更改。我只需要能夠在許多工作站上動態管理一堆作業。 – 2010-01-12 20:29:51

+0

哦。在這種情況下,大多數人所做的就是將腳本提交給像condor或SLURM這樣的現有批處理調度程序,解析輸出並在必要時提交新作業等。這比編寫自定義批處理調度程序少得多。 – janneb 2010-01-12 21:15:43

0

這樣做很可能只是爲了輸出中間樣本到單獨的文件(或數據庫),因爲他們完成,並且有一個過程偶爾查詢這些輸出文件,看看他們是否是足夠的,最簡單的辦法,或者更多的就業機會需要提交。

1

還有現在在地圖上四處兩種不同的Python包裝/減少框架的Hadoop:

http://code.google.com/p/happy/

http://wiki.github.com/klbostee/dumbo

的Map/Reduce是有很多的食譜來解決常見模式一個很好的發展格局的問題。

如果您還沒有一個集羣,Hadoop的本身是不錯的,因爲它有完整的作業調度,跨集羣(即HDFS)數據的自動數據分佈等