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)。