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