タグ付けされた質問 「distributed-systems」

複数の協力しているが別々のエージェントの問題を解決するための課題に関する質問。

2
ピアツーピアシステムを扱うコンピュータサイエンス分野
私は学部生で、学者になることを楽しみにしています。博士課程全体を行い、研究を開始します。私はコンピュータサイエンスに関連するさまざまなことに興味がありますが、最近P2Pテクノロジが本当に私の興味を引いています。博士課程の研究を行うには、コンピューターサイエンスの分野の1つを選択する必要があるという印象があるので、P2Pテクノロジーに興味があるので、その方法を考えているところです。P2Pは分散システムなどの領域に該当しますか?コンピュータサイエンスのどの分野がP2Pシステムに最も関連していますか?

1
並行して最大独立セットを見つける
グラフで、次のプロセスを実行します。G (V、E)G(V,E)G(V,E) 最初、すべてのノードは色付けされていません。VVV には色付けされていないノードがありますが、色付けされていない各ノードは次のことを行います。 VVV ランダムな実数を選択し、それを近隣のすべてに送信します。 その数を近隣の数と比較します。自分の数が厳密に最小の場合、隣人は自分自身を赤く塗りつぶし、隣人に通知します。 隣人が赤くなった場合、このノードは自分自身を黒く塗ります。 例えば: グラフがabcdeというパスであるとします。 最初のステップの数値が次のとおりであるとします:1-2-0-3-4。 ノードaとcは赤く塗られています。ノードbとdは黒く塗られています。 2番目のステップでは、ノードeのみが未着色のままです。最小限に抑えられているため、赤く塗りつぶされます。 私の質問は:すべてのノードが色付けされる前にこのプロセスが実行する平均ステップ数は何ですか? 私の現在の計算では、推定が導かれますが、これは真実であるにはあまりにも良すぎるようです。ここに計算があります:O (1 )O(1)O(1) d個の隣接ノードを持つノードを考えます。vがその近傍の中で最小になる確率は、1 /(d + 1 )です。これが発生した場合、vとそのすべての近傍が色付けされます。したがって、各ステップで色分けされる頂点の予想数は、(d + 1 )/(d + 1 )= 1ノードあたり1です。したがって、各ステップで色分けされる頂点の予想される総数はO (n )なので、O (1vvvdddvvv1 /(d+ 1 )1/(d+1)1/(d+1)vvv(d+1)/(d+1)=1(d+1)/(d+1)=1(d+1)/(d+1)=1 O(n)O(n)O(n)すべてのノードが色付けされる時間。O(1)O(1)O(1) この分析が間違っている場合(おそらくそうです)、実際のステップ数はいくつですか? 編集:@JukkaSuomelaによって指摘されているように、上記のアルゴリズムはMetivier et al、2011によるものであり、これらの講義ノートで説明および分析されています。彼らは、実行時間がことを証明します。O(logn)O(log⁡n)O(\log n) しかし、私はまだこの分析がタイトであると確信していません。チェックしたすべてのグラフで、アルゴリズムは予想時間内に完了したようです。O(1)O(1)O(1) 私の質問は今です:このアルゴリズムが実際に平均でステップを必要とする最悪の場合のグラフは何ですか?O(logn)O(log⁡n)O(\log n)

2
分散方式でのツリーの6色分け
ツリー6の分散アルゴリズムを理解するのにいくつかの困難があり時間でのカラーリング。O(log∗n)O(log∗⁡n)O(\log^*n) 詳細な説明は、次のペーパーにあります:スパースグラフの並列対称性の破れ。ゴールドバーグ、プロトキン、シャノン。 つまり、アイデアは... プロセッサID者によって与えられた有効な着色から出発し、手順を繰り返し、各非ルートノードrecoloringによって色記述のビット数を減少するビットのインデックス連結することによって得られた色で異なっておよびこのビットの値。ルート を連結と、新しい色を形成します。vvvCvCvC_vCparent(v)Cparent(v)C_{parent}(v)rrr000Cr[0]Cr[0]C_r[0] アルゴリズムは回の反復後に終了します。O(log∗n)O(log∗⁡n)O(\log^*n) 回の繰り返しで実際に終了する理由を直感的に理解できません。最後の反復に関する論文で言及されているように、2つのビット文字列が異なる最小のインデックスは最大3です。したがって、0番目のビットと1番目のビットは同じで、である可能性があるため、この2つのビットは4を与えます。色+異なる3番目のビット用の別の2色、および紙のように6色ではなく合計8色、および2ビットで先に進むことができない理由、異なるビットを見つけて分離することはまだ可能です。O(log∗n)O(log∗⁡n)O(\log^*n)22=422=42^2=4 論文よりもアルゴリズムを少し深く分析していただければ幸いです。

1
分散システムのコンセンサス問題
分散システムについて初めて読むことを始めました。いくつかの組み合わせトポロジを使用した非同期モデルでは、コンセンサスが不可能であることをかなり巧妙に証明しています。一方、実際のシステムでは、PaxosやRaftなどの分散状態マシンを同期するために使用される複数の合意プロトコルがあります。この認識された矛盾の鍵は、いわゆる障害検出です。 私の質問は次のとおりです。PaxosやRaftのようなプロトコルは何をあきらめますか、つまり、定理に矛盾しないのですか?障害検出はどのようにここに収まりますか? これらの関係を検討する価値のある論文はありますか?

1
ビザンチン将軍問題の不可能性
ウィキ:https : //en.wikipedia.org/wiki/Byzantine_fault_tolerance 論文「障害の存在下でのリーチング合意」では、M。Pease et al。問題を解決するための(ある種の)プロトコルがないことを証明しました。ここで、は将軍の数を表し、は裏切り者の数を表します。彼らの証明の鍵は、この場合の不可能性です。しかし、彼らが使用した方法は、情報理論的な証明のようには見えません。したがって、彼らの結果は「任意のプロトコルの不可能性」ではないようです。n≤3mn≤3mn \leq 3mnnnmmmn=3,m=1n=3,m=1n=3,m=1 私の質問:場合の情報理論ベースの証明はありますか?より正式には、「ビザンチンの一般的な問題を解決するプロトコルは存在しない」という命題の証明または反例はありますか?n=3,m=1n=3,m=1n=3,m=1n=3,m=1n=3,m=1n=3,m=1 注:L. Lamportらによって提案された典型的なプロトコル(任意の)。裏切り者が無限の計算リソースを持っていると仮定すると、情報理論の意味で完全に信頼できるものではない署名メカニズムが必要になるため、これは適切な反例ではありません。SM(m)SM(m)\mathrm{SM}(m)n,mn,mn,m

1
場所の透明性はアクセスの透明性を意味しますか?
分散システムの理論において、私は分散システムがとりわけロケーションとアクセスの透過性を必要とするという定義を見つけました。 場所の透明性にアクセスの透明性がまだ含まれていないのではないかと思っていました。 ウィキペディアでは、この2つを次のように定義しています。 アクセスの透過性–個々のコンピューティングエンティティでリソースアクセスと表現をどのように実行する必要があるかに関係なく、分散システムのユーザーは常に単一の統一された方法でリソースにアクセスする必要があります。 場所の透過性–分散システムのユーザーは、リソースが物理的にどこにあるかを意識する必要はありません。 リソースが物理的にどこに配置されているかを意識する必要がない場合、それは自動的にすべてのリソースに均一にアクセスできる必要があることを意味しませんか? はいの場合、その意味を変更せずに、定義からアクセスの透明性を除外できますか?

2
ソフトウェアトランザクションメモリのコンテキストでの線形化可能性と直列化可能性
ソフトウェアのトランザクションメモリのコンテキストで、直列化可能性と線形化可能性を把握しようとしています。ただし、どちらの概念も一般的にトランザクションメモリに適用できると思います。 この時点で、私は両方の主題について次のように理解しています。 シリアライザビリティ 直列化可能性はグローバルプロパティです。これはトランザクションの正確性のプロパティです。与えられたk各トランザクションを実行することのプロセスTkを同時に(すなわち、次々に)順番に実行することができるトランザクションの順序があることを直列化可能性を保証最終結果は同じであるようにトランザクションが同時に実行されるように。したがって、(T1, T2,..,Tk)順次実行できるトランザクションのリストを定義するリストの順列があります。 この特性は私には完全に理にかなっており、私の定義は正しいと思います。この定義は、HerlihyとShavitによる「The Art of Multiprocessor programming」のテキストに基づいています。 線形化可能性 線形化可能性は、並行オブジェクトのローカルプロパティです(たとえば、スレッド間で共有されるクラスのインスタンス)。線形化可能性により、2つのプロセスがそれぞれ、その共有オブジェクトで一連のopメソッド呼び出し(例、queueまたはインスタンス)を実行するときdequeueに、プログラムの順序(プログラマーQueueが記述した順序)を必ずしも保持しない、これらのメソッド呼び出しの順次的な順序付けが保証されます。ダウン)、ただし、各メソッド呼び出しは即座に行われるように見えます(つまり、呼び出しと応答が直接互いに続きます)。一方、各メソッド呼び出しの結果は個別に維持され、結果としてオブジェクトの状態も維持されます。 質問 "On the correctness of TM"GuerraouiとKapalkaによる論文によると、これはTMの文脈における線形化可能性の定義です。 ..共有オブジェクトを説明するために考案された安全プロパティは、TMの修正基準として使用されることがあります。TMの用語では、線形化可能性とは、直感的には、すべてのトランザクションがその存続期間中のある特定の時点で行われたかのように見える必要があることを意味します。 この定義は、私にとって直列化可能性に似ているようです。しかし、この論文では、シリアライザビリティを次のように定義しています。 ..は、データベーストランザクションの最も一般的に必要なプロパティの1つです。大まかに言えば、トランザクションの履歴H(つまり、特定の実行ですべてのトランザクションによって実行されるすべての操作のシーケンス)は、Hでコミットされたすべてのトランザクションが同じ操作を発行し、 Hでコミットされたトランザクションのみの(連続した履歴は、トランザクション間の同時実行性のない履歴です)。 ただし、この定義は、トランザクションからステートメントを並べ替えて、インターリーブできることを意味しているようです。(つまり、トランザクションのすべてのステートメントTがに順番に表示されるわけではないようにステートメントを並べ替えますH)。 私は、上記の個人的な定義が正しいと想定しています。私の実際の質問は、線形化可能性がトランザクションメモリのコンテキストでどのように定義されるかです。トランザクションメモリのセマンティクスが壊れるので、トランザクション内の各メソッド呼び出し(つまり、読み取り/書き込み操作)を個別に説明しても意味がありません。これは明らかに直列化可能性を損なうので、2つの同時トランザクションとそれらのインターリーブについて推論する必要があるのも意味がありません。線形化可能性とは、トランザクション内の個々の操作を並べ替えることができるということですか?線形化可能性が直列化可能性のより強力な形式である場合、操作が単一のトランザクション内で実行される順序は重要ではありません。 要約すると、まず第一に、直列化可能性と線形化可能性に対する私の理解は正しいですか?さまざまな作品で大量の定義を読んだ後、私は混乱しています。次に、一連のトランザクションを線形化できるとはどういう意味ですか? コメントの中にリンクされた質問も読んだ。しかし、それは私の特定の質問を私に説明しませんでした。 出典 トピックに関するSOの質問(STMについては明確ではありません) /programming/4179587/difference-between-linearizability-and-serializability 2つのhttp://www.bailis.org/blog/linearizability-versus-serializability/に関する非公式の説明 シリアライザビリティに関する元の論文 http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.92.2690&rep=rep1&type=pdf [1]線形化可能性に関する最初の論文 http://www.cs.toronto.edu/~christoff/files/Linearizability-ACorrectnessConditionForConcurrentObjects.pdf

3
前に起こった因果関係
私はLamportの「時間、クロック、および分散システムにおけるイベントの順序付け」を読んでいて、私を悩ませている詳細があります。 ランポートは、「以前に起こった」半順序を定義しています。次に彼は、「定義を表示する別の方法は、a-> bは、イベントaがイベントbに因果的に影響を与える可能性があることを意味する」と言います。 ここで、aがbの前に発生するような、プロセスP1でのメッセージ受信である2つのイベントaとbを考えます。さらに、aとbがP1で発生した2つのイベントだけであると仮定します。前に発生したリレーションの定義によれば、a-> bがあります(P1がこれらのイベントをこの順序で監視しているため、これは理にかなっています)。 ただし、イベントaがイベントbに因果的に影響を与える可能性があるかどうかはわかりません。これらの2つのイベントはまったく無関係であり、異なる順序で発生した可能性があります。 ここで何が欠けていますか?

2
堅牢で分散されたサービスの理論的基盤
私は、外部からの悪意のある攻撃に対して堅牢なソーシャルネットワークの概念を持っています。私のビジョンは、同じデータで動作し、同じサービスを提供する同等のサーバーの分散ネットワークとして構造的に構築されたシステムです。ユーザーはすべて、通信するそれぞれのサーバーに関係なく、同じネットワーク上で対話する必要があります。アイデアは、システム全体を停止させるすべての機会を(少なくとも理論的には)防止し、サービス全体の完全な障害を達成することです。明らかに、適切な同期メカニズムのため、そのようなシステムの設計は簡単ではありません。一方で、参加者を適切なサーバーに伝達するという課題があります。おおまかに私の考えを理解してほしい。 問題は、そのようなシステムがどのように機能するかについて漠然とした概念しか持っておらず、さらに私のcs研究で分散システムに関する関連する講義を通過したように思われることです。したがって、私は関連する文献の概要、理論モデルを説明する科学論文、そして実際の例も不足しています。 誰かが参照、リンク、役立つ説明で私を手伝ってくれる?

2
障害のある通信のアルゴリズム
分散アルゴリズム、特にネットワークに障害が発生した場合の通信に興味があります。 障害のあるネットワークでの次のランダム化された通信アルゴリズムの証明を探します。私にとっては、コミュニケーションの非常に一般的な結果のように思えますが、それでもまだ証拠を見つけていません。 アルゴリズム:最初は頂点のみにメッセージがあり、アルゴリズムの最後にネットワークのすべての頂点にメッセージがなければなりません。v0v0v_0 すべてのラウンドで、メッセージを選択したすべての頂点がランダムにネイバーを選択し、メッセージを送信します。 仮定:頂点間のエッジで発生する障害はのみで可能性があります。 -時間の複雑性。ネットワーク全体は、場合に高い確率でメッセージを認識します。ここで、n-頂点の数。fffT= O (ログn )T=O(ログ⁡ん)T = O(\log n)f&lt; n / 3f&lt;ん/3f<n/3 論文へのリンクや参照をお願いします。

1
「分散ハッシュテーブル」という用語の由来
私は現在、コンピューターサイエンスの学位論文のために、分散ハッシュテーブルの領域に関するトピックを研究しています。当然のことながら、私は質問に来ました。分散ハッシュテーブルという用語の由来です。(私はそれをハッシュテーブルの配布から単に導出することはロケット科学ではないことを知っていますが、誰かがどこかでそれを考え出したに違いありません)。 私が読んだほとんどの論文は、一貫したハッシュとそれを利用した最初のアルゴリズムの1つ(Chordなど)に関するオリジナルの論文を参照していました。私は80年代に分散データベースに関する多くの研究があったことを知っているので、この用語、またはおそらくその背後にある考えは、15年以上古いものである必要があると思います。 この質問の背後にある動機は、以前の日付と、おそらく同様のアイデアの別の用語を知っていると、私の研究のために収集できる有用な情報の範囲が広がる可能性があるということです。たとえば、他の人が私がしたいことと同じように何をしたか、どこで失敗したか。など 構造化オーバーレイネットワークを検索キーワードとして使用して、このトピックについてさらに詳しく調べようとしましたが、結果の定義/論文も非常に若いため、結局、研究トピックはそれほど古くないかもしれません。 分散ハッシュテーブルや構造化オーバーレイネットワークのトピックに関する以前の研究(90年代以前かもしれません)を知っている人はいますか?私がもっと歴史的な論文につながるようなキーワードを聞いてよかったです。

2
行列乗算プログラムの入れ子ループの不変式
Hoareロジックを使用して2つの行列を乗算するためのプログラムの正確性を証明することについて、卒業論文を作成しています。これを行うには、このプログラムの入れ子ループの不変式を生成する必要があります。 for i = 1:n for j = 1:n for k = 1:n C(i,j) = A(i,k)*B(k,j) + C(i,j); end end end 私は最初に内部ループの不変式を見つけようとしましたが、今までは本当のものを見つけることができません。上記のプログラムの不変式を見つけるのを手伝ってくれる人はいますか?
7 algorithms  loop-invariants  correctness-proof  formal-languages  regular-languages  pumping-lemma  logic  logic  programming-languages  lambda-calculus  term-rewriting  operational-semantics  complexity-theory  time-complexity  computability  proof-techniques  reductions  digital-preservation  distributed-systems  storage  algorithms  dynamic-programming  check-my-algorithm  reference-request  cryptography  quantum-computing  formal-languages  regular-languages  context-free  formal-grammars  algorithms  graphs  network-flow  algorithms  data-structures  randomized-algorithms  lists  computability  proof-techniques  undecidability  terminology  distributed-systems  parallel-computing  artificial-intelligence  heuristics  search-problem  algorithms  computational-geometry  algorithm-analysis  asymptotics  recurrence-relation  mathematical-analysis  master-theorem  algorithms  algorithm-analysis  runtime-analysis  computability  reductions  turing-machines  formal-languages  context-free 

1
全体的な実行時間を最小化するための負荷分散スキームの分析
特定の並列アプリケーションがマスタースレーブ設計を使用して多数のワークロードを処理するとします。各ワークロードは完了するまでに数サイクルかかります。特定のワークロードにかかるサイクル数は、既知の確率変数によって与えられます。そのようなワークロードが、同等のスレーブ(処理ノード)があると想定します。当然、この質問のより一般的なバージョンは、異なる機能のスレーブのケースに対処しますが、今のところこれは無視します。XXXnnnmmm マスターはワークロードを処理できませんが、ワークロードをスレーブノードに分散し、スレーブノードの進行状況を監視できます。具体的には、マスターは次のアクションを実行できます。 空きノードのワークロードの処理を即座に開始します。kkk 以前に開始されたワークロードのバッチのノードによる完了の確認を瞬時に受信します。kkk いつでも、瞬時に、すべてのノードの状態(空きまたはビジー)、完了したワークロードの数、および残っているワークロードの数を特定します。 簡単にするために、が除算すると仮定します。kkknnn すべてのスレーブを使用してすべてのワークロードの合計実行時間を最小化するための負荷分散戦略には少なくとも2つのカテゴリがあります(明確にするために、総処理時間ではなく、メイクスパンまたは実時間について話します。これは、この質問で行われている単純化の仮定の下で使用されている負荷分散戦略):静的および動的。静的スキームでは、すべての配置決定は時間で行われ。動的スキームでは、マスターは一部のスレーブによって行われている進行状況に関する情報を使用して配置決定を行うことができるため、より良い使用率を達成できます(実際には、静的スケジューリングと比較して動的スケジューリングに関連するオーバーヘッドがありますが、これらは無視してください)。今いくつかの質問のために:t=0t=0t = 0 ワークロードを静的にスケジュールするには、スレーブ間でワークロードのバッチをできるだけ均等に分割するよりも良い方法があります(簡単にするために、は分割するので、バッチを完全に均等に静的にスケジュールできると仮定することもできます)。 ?もしそうなら、どうですか?kkkmmmmmmn/kn/kn/k 最適な静的スケジューリングポリシーを使用して、の平均および標準偏差に関して、総実行時間の平均および標準偏差はどうあるべきですか?μμ\muσσ\sigmaXXX 単純なダイナミック・ロード・バランサは、スケジュール可能性がのバッチ最初に各スレーブへ作業負荷を、次に、ノードは初期完了するとバッチを、追加のバッチスケジュール先着順に各スレーブへ作業負荷を。したがって、2つのスレーブノードが最初にそれぞれ2つのワークロードの2つのバッチをスケジュールし、最初のスレーブが2つのバッチを完了すると、最初のスレーブに追加のバッチがスケジュールされ、2番目のスレーブは動作し続けます。最初のスレーブが2番目のバッチが最初の作業を完了する前に新しいバッチを完了すると、マスターは最初のスレーブへのスケジューリングを続行します。2番目のスレーブが作業の実行を完了すると、新しいワークロードのバッチが発行されます。例:iiikkkiiikkk DYNAMIC STATIC POLICY POLICY slave1 slave2 slave1 slave2 ------ ------ ------ ------ t&lt;0 -- -- -- -- t&lt;1 batch1 batch3 batch1 batch3 batch2 batch4 batch2 batch4 batch5 batch7 batch6 batch8 t=1 -- batch3 batch5 batch3 batch4 batch6 …
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.