現在、openMP を使用して、マルチコア ノードで実行されるコードを記述しています。openMP には、ロックが取得されたときに異なるコアで実行されているスレッド間でメモリが同期されることを保証する特定のメモリ モデルがあります。
openMP の代わりにC++11 コンストラクト ( std::thread
with std::mutex
and std::lock
) を使用することを検討しています (柔軟性が高いため)。ここで、プロセッサ間のメモリ同期が保証されているかどうか、またはどのように保証されているか疑問に思っています。そうでない場合、どうすれば強制できますか?