3

グループ番号へのランク番号の一般化はありますか? 私のコードでは、MPI::COMM_WORLD の階層分解を作成したいと考えています。16 個のスレッドを使用するとします。MPI::COMM_WORLD.Split を使用して、それぞれ 4 つのランクを持つ 4 つのコミュニケーターを作成します。対応する 4 つのグループに一意の ID を提供する MPI 関数はありますか?

4

2 に答える 2

5

では、各プロセスを元のランクで参照できますMPI_COMM_WORLDcolorのおよびkey引数を介して、各プロセスが新しいコミュニケーターで受け取るランクを完全に制御することもできますMPI_Comm_split()。これは、古いランクと新しいグループ/ランクの間のマッピングを作成するのに十分な情報です。

于 2012-04-25T13:24:05.493 に答える
1

@suszterpattの答えが気に入らない場合(私はそうします)、デカルトコミュニケーターをいつでも悪用し、コミュニケーターのインデックス(2,3)のプロセスが階層分解のグループ2のプロセス3であるふりをすることができます。

しかし、これを読んで、私がそのような虐待を推奨しているという印象を取り除かないでください。それは単なる考えです。

于 2012-04-25T13:30:09.417 に答える