3

Erlang でPregelを実装するとしましょう。なぜ実際にスーパーステップが必要なのですか? 1 つのスーパーバイザーからノードを表すプロセスにメッセージを送信するだけの方がよいのではないでしょうか? 計算機能を自分自身に適用し、互いにメッセージを送信し、「完了」メッセージをスーパーバイザーに送信するだけです。

Pregel の並行 Erlang 実装におけるスーパーステップの全体的な目的は何ですか?

4

1 に答える 1

3
  • Pregel モデルで支持されている SuperStep の概念は、並列実行エンティティの一種のバリアと見なすことができます。各スーパーステップの終わりに、各ワーカーはその状態を永続ストアにフラッシュします。
  • アルゴリズムは、各 SuperStep の最後にチェックポイントが設定されるため、障害が発生した場合、新しいノードが障害が発生したピアの機能を引き継ぐ必要がある場合に、そこから開始する必要があります。Pregel は、SuperStep が開始される前にノードのデータがディスクにフラッシュされているため、まさにその時点から確実に開始できることを保証します。
  • それはある意味で、アルゴリズムの「進歩」を意味します。pregel アルゴリズム/ジョブには、アルゴリズムが終了するまでの「スーパーステップの最大数」を指定できます。

あなたが質問で指定したこと(スーパーバイザーがワーカーに計算関数を送信し、「完了」を待つことについて)は間違いなく実装できます(OTPにパッケージ化された現在のスーパーバイザーがそのままでそのようなことを実行できるとは思いませんが)が、私は推測しますSuperStep の概念は、Pregel モデルの要件にすぎません。一方、並列マッパーのようなもの (Joe が本で実装しているものなど) を実装している場合は、スーパーステップは必要ありません/

于 2011-09-20T10:17:38.047 に答える