MPI での Quicksort の並列実装の通信の複雑さを研究していて、本で次のようなものを見つけました。
「単一のプロセスは、他の p-1 プロセスのそれぞれから p 個の通常のサンプルを収集します。比較的少数の値が渡されるため、メッセージの待ち時間がこのステップの支配的な用語になる可能性があります。したがって、収集の通信の複雑さは O(log p)" (O は実際にはシータであり、p はプロセッサの数です)。
ブロードキャスト メッセージについても同じ肯定が行われます。
これらのグループ通信の複雑さは、なぜ O(log p) なのですか? ある種のツリーベースの階層を使用して通信が行われているためでしょうか?
レイテンシが支配的な用語ではなく、大量のデータが送信されている場合はどうなるでしょうか? 複雑さは O(n log (p)) で、n は送信されるデータのサイズを利用可能な帯域幅で割ったものになりますか?
また、MPI_Send() と MPI_Recv() の通信の複雑さはどうですか?
前もって感謝します!