MPI_Isend および MPI_Recv プログラムがあります。2 つのプロセッサがあり、両方ともこのようなものであるとします。
- MPI_Isend
- MPI_Recv
- MPI_待機
これから私が期待するのは、ブロックせずに両方のプロセッサでデータを送信することです。あとはデータが来るのを待ちます。その後、このように再開します。
- 0 が 1 に送信
- 1 が 0 に送信
- 0 は 1 から受け取る
- 1 は 0 から受け取る
しかし、私が得るのはこれです。
- 0 が 1 に送信
- 0 は 1 から受信します (ただし、1 は送信しませんでした!)
- 1 は 0 に送信します (今は送信します)
- 1 は 0 から受け取る
MPI_Recv はデータが来るまで待つべきだと思いました。何が原因でしょうか?