![]() |
1
3
TL;博士 第一种方法没有 比赛条件 而第二种方法具有。 第一种方法没有竞争条件,而第二种方法有。即,在第一种方法中:
每个线程都保存操作的结果
实际上,您可以在这个版本上做一些改进;而不是分配数组
尽管如此,最好的方法将是实际修复第二种方法。
第二种方法是
比赛条件
关于变量的更新
因为
为了解决这个问题 比赛条件 你需要使用 reduction 条款:
|
![]() |
Lorah Attkins · 重置OpenMP中的线程局部变量 7 年前 |
![]() |
Kristofer · 当索引设置为私有时,如何确保访问缓冲区是私有的 7 年前 |
![]() |
koshachok · 使用4和8个线程运行时的等时间执行 7 年前 |
![]() |
avocado · OpenMP的线性加速比 7 年前 |
![]() |
jww avp · 从OpenMP并行循环中提升两个类变量 7 年前 |
![]() |
Dmitry · Fortran OpenMP代码比其非并行版本慢得多 7 年前 |
![]() |
Amos · 为什么openmp不基于手动NUMA绑定放置线程? 7 年前 |