2014-03-30 108 views
2

我最近在分布式计算中学习了一些关于分布式算法的课程,例如共识,领导者选举等问题,现在我想实现其中的一些。 这些分布式算法是为一个系统设计的,您可以在这里有大量独立进程:每个进程都运行给定算法的一个实例,并且进程可以通过发送消息(通过网络)相互通信。 这些消息包含一些序列化的数据;像RPC这样的“幻想”功能也不是那么有趣。消息传递分布式算法的框架

是否有任何合理稳定的框架来实现这样的消息传递类型的算法更高级别的语言,如Python,Haskell,Clojure等? (我知道Cloud Haskell,但它在这一点上看起来很alpha。)

+1

云哈斯克尔(http://haskell-distributed.github.io/)在生产中所使用的https://github.com/ps-labs – haroldcarr

+3

Erlang的风格分布式计算二郎神也有(HTTP:// www.erlang.org/),这是非常成熟的。对我来说,在Erlang中编写错误有点过于简单,因为它既是不纯又是动态类型的。 – Cirdec

回答

1

Erlang绝对是要走的路。发送消息直接构建到语言中,因此您不需要设置和学习任何其他框架。我正在学习分布式系统的硕士课程,我们必须在使用MPI转向Java或C之前,在Erlang中实现许多不同的算法。

如果您了解Prolog,那么该语言功能强大,且具有Prolog类语法,这可能很奇怪。另外它在每个平台上都没有任何问题(Windows,Linux,OS X)

erlang.org上的文档(http://www.erlang.org/doc.html)已经非常好了,但是如果你想在语法糖中有一个短暂的崩溃过程, ...您可以从我的主管读取文档:Erlang - functional programming in a concurrent world - 这是一个包含37张幻灯片的pdf。之后,你应该可以编写你的第一个应用程序。