10

関数からのdispls引数MPI_Scatterv()は、「(長さグループ サイズの) 整数配列」と言われます。エントリisendcountsは、(i を処理するために発信データを取得する sendbuf に相対的な) 変位を指定します。次に、引数があるとしましょう。

int sendcounts[7] = {3, 3, 3, 3, 4, 4, 4};

私がこれを推論している方法はdispls、最初のエントリの変位が に対して 0 であるため、配列は常に値 0 で開始する必要があるということです。sendbufしたがって、上記の例では、次のようにdisplsなります。

int displs[7] = {0, 3, 6, 9, 13, 17, 21};

あれは正しいですか?これが些細な質問であることはわかっていますが、何らかの理由で Web はまったく役に立ちません。そこに良い例がないので、私の質問です。

4

2 に答える 2

1

はい、あなたの推論は正しいです-連続したデータの場合。displacementsパラメータのポイントは、ストライドMPI_Scattervされたデータも許可することです。つまり、チャンク間に未使用のメモリ ギャップがあることを意味します。sendbuf

連続データの例を次に示します。公式ドキュメントには、ストライド データの良い例が実際に含まれています。

于 2016-12-24T18:44:13.630 に答える