8

所以我最近開始學習Scala,並且一直在使用圖表作爲我的改進項目 - 我的Scala項目,並且它進展順利 - 自那時起,我設法輕鬆地並行化了一些圖算法(從數據中受益並行化)來自Scala 2.9對並行集合的驚人支持。在集羣上分佈Scala嗎?

但是,我想更進一步,並且不僅僅在一臺機器上並行,而且跨越多臺機器。斯卡拉是否提供任何干淨的方式來做到這一點,就像平行館藏一樣,或者我必須等到我的關於演員的書中的章節/瞭解有關阿卡的更多信息?

謝謝! -kstruct

回答

11

曾嘗試創建distributed collections(當前項目被凍結)。

替代將是阿卡(最近有很酷另外:Akka Cluster),你已經提到的,或者全面的集羣引擎,這是在任何意義上並行收集而更像是集羣分佈在scala上,但可以以某種方式在您的任務中使用 - 例如Hadoop的ScoobiStorm或甚至Spark(特別是,用於圖處理的Bagel)。 也有Swarm建立在分隔延續之上。 最後但並非最不重要的是Menthor - 作者聲稱它特別適合圖形處理和使用Actor。

由於您的目標是與圖表一起工作,所以您可能還會考慮最近由twitter發佈的Cassovary

Signal-collect是用Akka支持的並行數據處理框架。

+0

查看[Scrunch](https://github.com/cloudera/crunch/tree/master/scrunch)以及Hadoop – dhg 2012-03-11 07:52:52

+0

還有[Scalding](https://github.com/twitter/scalding) )爲Hadoop – 2012-03-11 08:18:59

+0

是的,我已經簽出了cassovary,真的很好 – adelbertc 2012-03-11 23:01:25

2

您可以使用阿卡(http://akka.io) - 它一直是斯卡拉最先進和強大的演員和併發性框架,以及新鮮出爐的2.0版只允許漂亮的透明actor remotinghierarchiessupervision。執行並行計算的規範方法是創建儘可能多的參與者,因爲算法中有並行部分,可以選擇將它們分佈到多臺機器上,將數據發送給進程並收集結果(請參閱here)。