我目前正在使用 openMP 编写在多核节点上运行的代码。openMP 有一个特定的内存模型,它保证在获得锁时,运行在不同内核上的线程之间的内存是同步的。
我考虑使用 C++11 构造(std::thread
with std::mutex
and std::lock
)而不是 openMP(因为它们具有更大的灵活性)并且想知道处理器之间的内存同步是否/如何保证?如果没有,我该如何执行?
我目前正在使用 openMP 编写在多核节点上运行的代码。openMP 有一个特定的内存模型,它保证在获得锁时,运行在不同内核上的线程之间的内存是同步的。
我考虑使用 C++11 构造(std::thread
with std::mutex
and std::lock
)而不是 openMP(因为它们具有更大的灵活性)并且想知道处理器之间的内存同步是否/如何保证?如果没有,我该如何执行?