回答
你可能會考慮像ZeroMQ消息隊列這樣簡單的事情。我相信一個CPAN search可以幫助一些其他的建議。
最近出現了許多核心引擎MCE模塊,您可能需要調查,我不知道肯定它可以讓你並行關閉主機做的一些議論,但現在看來似乎不會鑑於其明確的目的,邁出一大步。
這是從拼湊系統的角度思考一個很好的建議。 ZeroMQ可用作各種網絡拓撲中的膠粘連接組件,並具有連接運行各種語言編寫代碼的機器的優點。將其視爲一種高效的,編程友好的消息協議,並且支持多種語言的庫。 – ekillaby 2013-06-10 17:15:57
我是多核心引擎的Perl的作者。
在接下來的幾個週末,我會帶MCE與Gearman::XS旋轉。 MCE擅長最大化給定節點上的可用內核。 Gearman善於分配工作,幷包含許多功能,如負載平衡。將兩者結合起來就是我想要在許多節點上水平擴展MCE的原因。 :)直到現在,我還沒有與任何人分享這個消息。
爲什麼這兩個模塊一個不錯的選擇(愚見):
對於分佈,需要某種形式的分塊引擎。 MCE是一個組塊引擎 - 因此分解輸入對於MCE是很自然的。從本質上講MCE可以在兩側,作業提交主機以及對可用內核最大化工作節點上使用。
對於工作節點,MCE處理輸入數據時遵循銀行排隊模型。這有助於保證所有CPU從作業開始到最後都保持忙碌狀態。隨着工人閒下來,剩下的「工作」正在處理他們最後一塊。
一個人的想象力是這裏的限制 - 這兩個模塊共同工作的可能性很大。在編寫MCE時,我首先關注節點端。工作分配是明顯的下一步,我做了一個搜索,並遇到了Gearman :: XS。的2個模塊組塊可以一起愉快:)工作分配側(更大的塊)中,一旦在節點(較小的塊)。所有的網絡資料都由Gearman處理。
基本上,沒有必要爲我寫的作業分配方面,當使用Gearman :: XS已經是相當不錯的。這是我的計劃。我會盡快寫關於Gearman :: XS + MCE的。
BTW:人們可以做類似的事情GRID-機+ MCE我想象。 MCE的優點在於最大化任何給定節點上的所有可用內核。
關於MCE的另一個神奇之處是,例如,可能不希望200個節點* 16名工作人員全部從NFS服務器讀取/寫入。這會極大地影響NFS服務器。 BTW:RHEL 6.4將包含pNFS(並行NFS)。使用MCE,工作人員可以調用「do」方法來序列化來自NFS的寫入/讀取。因此,而不是200×16 = 3200攻擊NFS,變得在任何給定時間(1每物理節點)針對NFS服務器僅200最大請求數。
當寫MCE,寬限期可以應用在很多場景。我需要更多的維基添加到MCE的主頁MCE at code.google.com。此外,MCE早餐吃的真的很大的日誌文件:)請參閱examples目錄下的egrep.pl和wc.pl。它甚至可以在連續的IO(許多工作人員中強大的slurp IO)上擊敗廣泛的查找器項目。
退房包含在MCE分佈images。哦,不要忘了查看主要的Gearman網站。
此後還剩下些什麼? Humm,網頁片斷。想到的一個想法是使用Mojo。有很多選擇。這僅僅是一個:
的Gearman :: XS + MCE + Mojolicious
再次,如果能想通過SSH進行通訊使用GRID-機代替的Gearman :: XS的。
無論如何,這是我的計劃使用已經可用的作業分配模塊。對於MCE,我的重點是在單個節點上最大限度地提高性能 - 包括分塊,序列化,銀行排隊模型,用戶任務(允許多個角色),工作者中的數字排序以及順序slurp IO。
- 馬里奧
的GRID
模塊上CPAN設計用於與分佈式計算工作。
https://metacpan.org/pod/distribution/GRID-Machine/lib/GRID/Machine/perlparintro.pod
Argon可以提供你正在尋找的東西(免責聲明 - 我是作者)。它允許您建立一個任意的工作者網絡,每個工作者網絡都運行一個進程池(使用Coro::ProcessPool)。
創建任務很簡單:
use Argon::Client;
my $client = Argon::Client->new(host => "somehost", port => 8000);
my $result = $client->queue(sub {
use My::Work::Module qw(do_work);
my $task_id = shift;
do_work($task_id);
});
- 1. 分佈式/並行計算
- 2. 並行與分佈式計算----分界線
- 3. 使用docker運行分佈式計算
- 4. 分佈式計算/縮小
- 5. 分佈式計算和wEB
- 6. MSDTC和分佈式計算
- 7. Javascript分佈式計算
- 8. 它是分佈式還是並行計算?
- 9. 設計指南分佈式計算
- 10. 使用MapReduce或其他分佈式計算方法進行分析計算?
- 11. Clojure/Java的分佈式計算框架
- 12. Java中的分佈式計算平臺
- 13. JavaScript的分佈式計算項目
- 14. 用於分佈式計算的Ruby庫?
- 15. 簡單的分佈式計算
- 16. perl計算分子量
- 17. 分佈式計算的K均值計算
- 18. 開源的分佈式計算/雲計算框架
- 19. 從哪裏開始進行分佈式計算/並行處理? (Python/C)
- 20. 分佈式計算,應用服務器
- 21. 分佈式計算:異步接收
- 22. 分佈式互相關矩陣計算
- 23. matlab與sge分佈式計算(qsub)
- 24. 建議分佈式計算,從流
- 25. 分佈式計算應用程序
- 26. Python分佈式計算(作品)
- 27. Python橙色分佈式計算
- 28. R的計算分佈圖
- 29. 使用mdf文件進行分佈式計算的問題
- 30. 分佈式計算和雲計算有什麼區別?
如何電網::機http://search.cpan.org/~casiano/GRID-Machine/。我並不熟悉這個領域,但它看起來像是一種可能性。 – 2013-02-15 12:12:48
沿着相同的路線...因爲你提到hadoop,也許你對MapReduce感興趣:http://search.cpan.org/~drrho/Parallel-MapReduce-0.09/lib/Parallel/MapReduce.pm – 2013-02-16 00:43:56