基本上,我希望實現以下算法並分析使用這些算法構建的系統在不同條件下的行爲。爲實現分佈式消息傳遞算法而選擇的編程語言
- Gossip協議
- 多的Paxos
- 一致這裏散列
我關心的是這些算法。我基本上在尋找一種編程語言,可以讓我快速編寫這些算法並深入理解這些算法。
我應該選擇哪種語言? Java,Scala,Erlang或其他任何東西。
目前,我瞭解Java和C++。
基本上,我希望實現以下算法並分析使用這些算法構建的系統在不同條件下的行爲。爲實現分佈式消息傳遞算法而選擇的編程語言
我關心的是這些算法。我基本上在尋找一種編程語言,可以讓我快速編寫這些算法並深入理解這些算法。
我應該選擇哪種語言? Java,Scala,Erlang或其他任何東西。
目前,我瞭解Java和C++。
你可以嘗試實施二郎的協議。
您是否決定了消息傳遞庫?如果您對MPI感興趣,則可以使用Java和C++版本。
MPI爲您執行大量工作,例如廣播消息並檢索答案,這對您的算法至關重要。因此,我建議您爲C++或Java找到合適的MPI版本,並開始工作。
看看:
MPI需要一組穩定的機器。它不適用於多雲架構,其中配置不均勻,延遲可能會有所不同,並且您不確定機器是否還活着。所以,這不是分佈式計算的最終靈丹妙藥。 – paradigmatic
@paradigmatic:不同意! MPI程序可以在異構(HW,OS,PL)環境中執行。請注意,ajav(已問過的人)只需要一個庫來通過在一組協議中進行實驗來學習消息傳遞。他並沒有面對真實的多雲環境,例如你所提到的環境。請參閱FT-MPI(http://icl.cs.utk.edu/ftmpi/)瞭解MPI的容錯版本。 – hsalimi
忘了Erlang?這是錯誤的建議。今天實施的算法可能無法應對今天的挑戰,因爲它的技術基於昨天的挑戰。 Erlang已經在可擴展性,可用性和穩定性方面進行了戰鬥測試(只需很短的原型設計時間)。比較Riak,Membase,Scalaris,Yaws e.t.c等系統。這些系統依賴於Erlang內置的穩定模型,並且已被證明可以應對當今的挑戰。試試Erlang,你不會後悔 –
哦,是的!你可以通過查看這些開始編程二郎:
這些鏈接會爲您提供資源,所有的Erlang編程,你可能需要。不過我建議你用Joe Armstrongs Programming Erlang Text Book
開頭,當你讀它,使用網址:Learn you some erlang for great good
(上述基準1號)作爲參考進行進一步瞭解數據結構。
您可以從這裏下載Erlang:Erlang Download official Page。
您可能需要其他鏈接和資源(應用程序,庫e.t.c.),其中大部分索引位於此處:Erlang/OTP .com website。
有時候,你可以隨時要求#2的任何問題在這裏,也可以從SourceForge的搜索工具和庫。
這似乎太棒了。看看這些功能,我想我應該在用C++和Java編寫10年之後學習這個優雅的PL。 – hsalimi
以我的經驗,二郎是真的,真的非常適合於分佈式的消息傳遞。我不知道你提到的任何協議,但我確實認爲Erlang很適合用於這些目的。 –
以後不要後悔。 Erlang已被證明是容錯分佈式系統的未來。在二郎語義已經從一開始就設計爲支持這樣的算法 –
快速原型如果你知道Java和C++,你爲什麼要尋找替代品?如果你能解釋你的理由,這將有助於提出建議。 –