2

通常、バッファを次のプロセッサに送信し、前のプロセッサから別のバッファを受信する場合は、次を使用します。

MPI_Irecv(rcv_buff,rcv_size,
        MPI_DOUBLE,rcv_p,0,world,
        &request);
MPI_Send(snd_buff,snd_size,
        MPI_DOUBLE,snd_p,0,world);
MPI_Wait(&request,&status);

rcv_buff の最初の rcv_size0 要素を array0 に入れ、残り (rcv_size1 要素) を array1 に入れたいとします。

rcv_size1=rcv_size-rcv_size0;

通常、ここで rcv_buff のようなダミー配列を作成してから、配列 0 と配列 1 に値をコピーし始めます。私の質問は、送信されたバイトを 2 つ以上のシーケンスで受信する方法が MPI にあるということですか? たとえば、最初の size0 要素を array0 に直接受け取り、残りを array1 に受け取りますか?

4

2 に答える 2