2010-08-03 28 views
18

我編寫了一個多線程Java程序來解決一個令人尷尬的並行問題,以至於它利用了多核CPU上的所有空閒CPU週期。我想重構我的解決方案,以便它可以在多個節點上運行,同時仍保留大部分我已經編寫的代碼。Java中的多節點併發性

我在過去曾經使用MPI和C,並被告知它是解決CPU週期最大化問題的「正確」方式,但我也意識到Java中的其他併發框架(如RMI),並且想知道是否他們同樣好。

是否有一種很好的方法來處理Java中的多節點和多核併發性,其主要目標是儘可能多地利用羣集中的CPU週期?

編輯:我覺得沒有簡單的方法來處理這些東西。我並不感到驚訝,但我希望。 :)

回答

5

JMS是一個很好的開始。

+0

是任何支持客戶端負載平衡的MQ,它應該是最多 – oluies 2010-08-03 20:21:39

7

您可以試試Hazelcast。它有一個分佈式ExecutorService。這應該允許您將任務添加到在任意數量的節點上運行的服務。

10

取決於你在做什麼,你的預算,你可能想看看(排名不分先後)

另見:

+1

+1,我們使用兵馬俑,它工作正常 – Bozho 2010-08-04 08:51:18

4

還要考慮Apache Hadoop,它採用MapReduce和是非常適合許多並行的解決方案。