なぜ分散コンピューティングの統一された複雑性理論を開発できなかったのですか?


41

分散コンピューティングの分野は、分散アルゴリズムを記述するための単一の数学的理論を開発する上で非常に不十分です。単に相互に互換性のない分散計算のいくつかの「モデル」とフレームワークがあります。さまざまな時間プロパティ(非同期、同期、部分同期)、さまざまな通信プリミティブ(メッセージパッシングと共有メモリ、ブロードキャストとユニキャスト)、複数の障害モデル(フェイルストップ、クラッシュリカバリ、送信省略、ビザンチンなど)の爆発的な爆発on)は、難解な数のシステムモデル、フレームワーク、および方法論を残しており、これらのモデルとフレームワーク全体の相対的な可解性の結果と下限を比較することは困難で扱いにくく、時には不可能になります。

私の質問は非常に単純ですが、なぜそうなのですか?分散コンピューティングについて(シーケンシャルなものとは)根本的に何が異なり、研究を分散コンピューティングの統一理論にまとめることができなかったのですか?シーケンシャルコンピューティングでは、チューリングマシン、再帰関数、およびラムダ計算がすべて同等になるように調整されました。これは単なる幸運だったのでしょうか、それとも分散コンピューティングではまだ達成されていない方法でシーケンシャルコンピューティングをカプセル化するのに本当に良い仕事をしましたか?

言い換えれば、分散コンピューティングは本質的にエレガントな理論に屈しない(そしてそうであれば、どのように、なぜですか?)か、単にそのような理論を発見するのに十分にスマートではありませんか?

この問題に対処できる唯一の参考文献は、Fischer and Merritt DOIによる「20年間の分散コンピューティング理論研究の評価」:10.1007 / s00446-003-0096-6です。

参照や説明は本当に役立つでしょう。

回答:


26

私の考えでは、抽象的に動機付けられた計算のチューリングマシンモデルはごく最近までテクノロジーの優れた近似でしたが、分散コンピューティングのモデルは、始めから、常に抽象よりも厄介な現実世界によって動機付けられてきました。

たとえば、1940年から1995年にかけて、問題のインスタンスのサイズ、並列処理と同時実行の相対的な「重要性」、およびコンピューティングデバイスのマクロスケールは、すべて「共謀」してチューリングマシンを実世界のコンピューターの優れた近似値に保ちます。ただし、大規模なデータセット、同時実行性の普遍的な必要性、アルゴリズムレンズによる生物学などの処理を開始すると、「直感的な」計算モデルがあるかどうかはあまりわかりません。たぶん、あるモデルで難しい問題は、別のモデルでは難しいことではなく、厳密には計算の複雑さはそれほど大きくありません。だから私は、実際の考慮事項に動機付けられた計算とデータ構造の複数のモデルを検討し始めることで、主流の計算の複雑さがついに分散コンピューティングに追いついていると信じています。


7
また、それぞれのフィールドの定義的な質問を考慮してください。「完全に計算できると仮定します。できることとできないことの限界は何ですか?」vs.「障害のあるチャネル、プロセッサ、または敵がいると仮定します。これらの障害に直面したときに、どうやってうまく計算できますか?」最初の質問は、「クリーン」な回答を生み出す可能性が高くなります。2番目は、乱雑さを科学化する要求です。
アーロンスターリング

21

古典的なグラフの問題(または入出力の問題)の観点からこれに答えます。ネットワークがあり、各ノードが入力として何かを取得し、各ノードが出力として何かを生成する必要があります。これは、従来の計算の複雑さの世界に最も近いと思います。

私は確かに偏見がありますが、この設定に実行時間=同期ラウンドの数という定義を持つ、単純でかなり一般的に使用される分散コンピューティングのモデル、同期分散アルゴリズムがあると思います。Pelegの用語では、これはLOCALモデルです。

このモデルは、「可動部分」がほとんどなく、パラメーターがないなどの点で優れています。それにもかかわらず、非常に具体的です。このモデルでは、アルゴリズムの実行時間が正確に15であると言えます。また、無条件の情報理論的な下限を証明できます。この観点から、多くのグラフ問題(グラフの色付けなど)の分散複雑性はかなりよく理解されています。

このモデルは、分散コンピューティングの多くの側面に対する統一されたアプローチも提供します。

  • メッセージの受け渡しと共有メモリ、ブロードキャストとユニキャスト:このモデルには関係ありません。
  • 実際のシステムは非同期ですか?問題ありません。 -synchroniserを接続するだけです。時間の複雑さ(適切な定義を使用)は基本的に影響を受けません。α
  • 動的なネットワーク用のアルゴリズムが必要ですか、それとも障害から回復したいですか?同期アルゴリズムが決定論的であれば、自己安定化アルゴリズムを構築するためにそれを使用できます。繰り返しますが、時間の複雑さは基本的に影響を受けません。

これはすべて、アルゴリズムの実行時間がグラフの直径よりも短いという意味で「真に分布する」問題を研究している限り問題ありません。つまり、ノードの構造に関する完全な情報は必要ありませんグラフ。ただし、本質的にグローバルな問題も多数あります。このモデルの最速のアルゴリズムには、グラフの直径に比例した実行時間があります。これらの問題の研究では、上記のモデルはもはや意味をなさないため、他の手段に頼る必要があります。通常、ネットワークで通信されるメッセージまたはビットの総数に注意を払い始めます。これが、いくつかの異なるモデルを取得する理由の1つです。


もちろん、分散コンピューティングコミュニティは実際には2つの異なるコミュニティであり、驚くほど少数の共通点があるという問題があります。2つのコミュニティのすべてのモデルをひとまとめにすると、確かに少し混乱します。上記の私の答えは、コミュニティの半分のみに関連しています。他の半分については他の人が記入すると信じています。


私がこれを正しく理解していれば、ポイントは同期システムにのみエレガントな理論があり、他にはあまりないということです。同期システム以外のシステムに関しては、2つの異なるコミュニティからの問題/焦点を統合しており、これは単一の理論の開発に方法論的な問題を提示します。あなたの議論を正しく理解しましたか?
スリカンスサストリー

非常に有益な答えをありがとう。これを答えとして受け入れます。
モハマドアルトルコ

5

分散コンピューティングのさまざまなモデルをキャプチャするためのロマンチックなアイデアの1つは、代数トポロジーを使用することです。核となる考え方は、ポイントをプロセス状態とし、それぞれにプロセスIDのラベルを付けることにより、単純な複合体を構築することです。これはトピックの入門書です。あなたの質問への最も近い答えは、おそらくEli gafniの論文-分散コンピューティング-理論のかすかに触れています。彼の論文では、2〜3プロセッサの非同期共有メモリ(フェイルストップとビザンチンの場合)で始まるシミュレーションを示しています。これをメッセージパッシングモデルに適用する方法を示しています。彼のシミュレーションを理解する上で重要なのは、分散コンピューティングをトポロジ的に表示することです。


4

コンテキストで見ると状況はかなり異なっていると思います。初期の作品から始めて、ビザンチン協定の不可能性の結果(PSL80 LSP82 FLP85)、分散コンピューティングの基本的な問題は、厳密な同期の仮定と高度な冗長性によってのみ解決できることがすぐに明らかになりました。これらの無条件の理論的リソースの下限は実際の目的では実行不可能と見なされたため、研究は、仮定(タイミング保証または故障モードなど)対保証(すなわち、システム設計者にシステムの適切なトレードオフを見つけるためのツールを提供するために、どの種類のコンポーネントが許容されるか(プロセッサ、リンクなど)の種類の同時障害。


洗練されたモデルは、分散空間における問題の「実用的な」解決可能性を理解するために導入されたことを理解しています。これらのきめの細かいモデルは、解決可能性、時間の複雑さ、およびメッセージの複雑さに関して、階層にきちんと配置されることが期待されます。残念ながら、これは事実ではありません。ここで私の質問は、このバルカン化の理由は何ですか?分散コンピューティングに固有の属性の場合、それは何ですか?
スリカンスサストリー
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.