MPI_Send()
再利用のためにアプリケーションバッファを安全に変更できるようになるまで待機するブロッキングコールであることはわかっています。送信呼び出しを同期させるには (受信者とのハンドシェイクが必要です)、 を使用する必要がありますMPI_Ssend()
。両者の違いを知りたいです。プロセス間で一定量のバイトを送信する必要があるとします。どちらのプロセスに時間がかかると思われますか?
私の場合、コードは MPI_Send() 呼び出しでうまく機能しますが、MPI_Ssend() を無期限に待機します。考えられる理由は何ですか?
そして、最も重要なことは、 を使用するときにデータが受信プロセスで受信されていることを確信しているMPI_Send()
ため、この推論は、 を使用するときにハンドシェイクを待つことに有利にはなりませんMPI_Ssend()
。
または、結論を下すことMPI_Send()
ができます。セルフプロセスにデータを送信できますが、使用できませんMPI_Ssend()
か?