6

基本的には、次のアルゴリズムを実装し、これらのアルゴリズムを使用して構築されたシステムがさまざまな条件下でどのように動作するかを分析したいと考えています。

  • ゴシッププロトコル
  • 複数のパクソ
  • コンシステント ハッシュ

ここでの私の関心は、これらのアルゴリズムにあります。私は基本的に、これらのアルゴリズムをすばやく記述し、これらのアルゴリズムを深く理解できるプログラミング言語を探しています。

どの言語を選択すればよいですか? Java、Scala、Erlang など。

現在、私は Java と C++ を知っています。

4

4 に答える 4

8

Erlang でプロトコルを実装してみてください。

  • プロセス通信は、言語と VM に非常に洗練された形で組み込まれています。2 つの elrang プロセス間での非同期メッセージ パッシング。
  • アルゴリズムのフォールトトレランスの側面/再試行ロジックなどのコーディングは、erlang では簡単です。すべてを軽量プロセスにカプセル化し、スーパーバイザーと呼ばれる特別なプロセスを使用してそれらを再起動します。
  • Erlang オブジェクトのシリアル化は非常に簡単です。シリアライゼーション ロジックを明示的にコーディングする必要はありません (Java でシリアライズ可能を実装するなど)。
  • Erlang ディストリビューションには、リモート VM で関数を呼び出すことができるrpcと呼ばれるモジュールが付属しています。
  • エルラング シェルは本物の神の送り物です。シェルは任意のリモート VM に接続できます。シェルを使用すると、内部テーブル/データ構造をプロファイリングできます。VM には、シェルを介して利用できる非常に洗練されたデバッグ機能とトレース機能もあります。
  • Riakは、Amazon の Dynamo をモデルにした Erlang で書かれたオープン ソースの NoSQL データストアです。Consistent Hashing と Gossip プロトコルの両方を実装しています。
于 2011-08-21T18:51:26.327 に答える
4

そうそう!これらを見ればErlangのプログラミングを始めることができます:

  1. 良いことのためにErlangを学びましょう
  2. Erlang ブック パート 1
  3. Orielly's Erlang Programming Text Book (Francesco Cezarini と Simon Thompson)
  4. Joe Armstrong のプログラミング Erlang テキストブック

上記のリンクは、必要なすべての Erlang プログラミングのリソースを提供します。ただし、データ構造をさらに理解するための参照として、 から始めてJoe Armstrongs Programming Erlang Text Book、それを読みながら Web サイトLearn you some erlang for great good(上記の参照番号 1) を使用することをお勧めします。

ここから Erlang をダウンロードできます: Erlang Download official Page

他のリンクやリソース (アプリケーション、ライブラリなど) が必要になる場合があります。それらのほとんどはここでインデックス化されています: Erlang/OTP .com website .

時折、ここで Stackoverflow に関する質問をしたり、sourceforge からツールやライブラリを検索したりできます。

于 2011-08-23T11:48:29.103 に答える
2

これらのプロトコルはすべて、さまざまな Erlang プロジェクトですでに実装されています。詳細について は、 MnesiaRiakCouchDBScalarisを参照してください (各プロジェクトのすべてのプロトコルではありません)。この種のプロトコル実験にとって、Erlang ほど使いやすい環境は想像できません。

于 2011-08-22T09:25:15.370 に答える
0

メッセージ パッシング ライブラリについて決定しましたか? MPI に興味がある場合は、Java 版と C++ 版の両方が利用可能です。

MPI は、メッセージのブロードキャストや返信の取得など、アルゴリズムに不可欠な多くのジョブを実行します。そのため、C++ または Java 用の MPI の適切なバージョンを見つけて作業を開始することをお勧めします。

を見てみましょう:

于 2011-08-21T18:20:00.877 に答える