2 つのプロセス間で単純な send/recv を作成しました。と を使っisend
てirecv
メッセージを渡します。
mpi::request
送信者側では、 から返されたオブジェクトをキャプチャし、isend
それを使用してメッセージが配信されたことを確認します。ただし、受信側で実際に実行されるずっと前に、確認 (つまり) が有効なオブジェクト ( を含む) をrequest.test()
返すようです( の前に sleep(20) があります)。このことから、ステータスは (キューへの) 配信を示すものであり、メッセージが読み取られたことを示すものではないと結論付けますか?status
status->error == 0
irecv
irecv
おそらく、Ubuntuでboost::mpi、C++を使用していることに言及する価値があります。