web-dev-qa-db-ja.com

並列マージソートは、プロセッサのメッシュ配列と線形配列で異なる方法で実行されますか?

私は現在、アルゴリズムの紹介のコースを受講しており、並列マージソートアルゴリズムに出くわしました。私の質問は、無限線形プロセッサではなく2Dメッシュで実行する場合、アルゴリズム計画に違いはありますか?

ありがとうございました、

3
user139560

用語meshおよび_linear array of processors_を定義するか、そのような定義へのオンライン参照を提供してください。


マージソートアルゴリズムにはさまざまな種類があります。 1つの顕著な違いは次のとおりです。

  • サイズ_N/2_配列の2つのソートされた半分を完全にソートされたN配列にマージする場合、正確に1つのステージが必要ですか(正確にNまたはO(N)の比較を実行します) 、またはそれは複数の段階を取りますか、最も一般的にはO(log(N))同じ数の段階(O(N*log(N))比較の総数に対して)?

  • プログラミングクラスの概要で一般的に教えられているシングルスレッドマージソートは、2つの半分をスキャンに依存し、小さい方の値を「デキュー」します。 2つの半分のうちの2つのフロント値。これは正確に_N-1_の比較を行います。シーケンシャルであるため、O(N)タイムステップが必要です。

  • 並列マージソート。これは、などの並列ビットニックマージソートである可能性が最も高いです。

並列化されたマージソートには他のフレーバーがあります。あなたが学んでいるマージソートのフレーバーを明確にしない限り、私はそれらに答えることができません。

5
rwong