考虑以下使用 Open MP 的场景:
我们有一个指针A
指向内存中的一个非常大的缓冲区,并且我们有几个线程,一个线程(我们称之为线程#1)不断更新其中的内容,A
而另一个线程基于由 #1 控制的信号处理存储在A
.
这是确保最快的方法(假设告诉其他线程正确复制时间的信号A
是原子的,所以那里没有竞争条件):
处理数据的线程将始终使用更新的数据(例如,不会有某些数据被缓存在寄存器中的风险等)。
很棒的表演。
考虑以下使用 Open MP 的场景:
我们有一个指针A
指向内存中的一个非常大的缓冲区,并且我们有几个线程,一个线程(我们称之为线程#1)不断更新其中的内容,A
而另一个线程基于由 #1 控制的信号处理存储在A
.
这是确保最快的方法(假设告诉其他线程正确复制时间的信号A
是原子的,所以那里没有竞争条件):
处理数据的线程将始终使用更新的数据(例如,不会有某些数据被缓存在寄存器中的风险等)。
很棒的表演。