2014-03-30 42 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。之後,你應該可以編寫你的第一個應用程序。