私が最近学んだ関連する質問では、複数のスレッドが通信する MPI を使用する際には非常に注意する必要があるということです。私が使用する実装は をサポートしていないためMPI_THREAD_MULTIPLE、すべてMPI::COMM_WORLDの呼び出しをstd::lock_guard<std::mutex>.
私の質問:これはやり過ぎですか?具体的に言うSendと、正確な時間にできRecvますか?
std::mutex送信用、受信用の2つで試してみました。私のテストマシンでは、エラーなしでいくつかのテストを実行しましたが、それは保証ではなく、単なる偶然かもしれません..
追加: 何百回ものテスト実行で、実際には 1 つのお粗末なセグメンテーション違反が発生しましたが、これが同時送受信によるものかどうかについては 100% 確信が持てません。