![]() |
1
9
OpenMP提供了pragmas来帮助同步。
示例输出(通常每次不同):
|
![]() |
2
1
问题是:您有一个所有线程都试图访问的资源。必须保护这些单一资源不受并发访问(线程安全资源也这样做,只是对您透明;顺便说一句:
here
是关于std::cout的线程安全性的一个很好的答案。您现在可以保护这一单一资源,例如使用
如果我可以假设您希望在较大I的结果之前得到较小I的F(…I)的结果,那么您应该完全放弃并行化,或者以不同的方式进行:
提供大小数组
|
![]() |
Lorah Attkins · 重置OpenMP中的线程局部变量 6 年前 |
![]() |
Kristofer · 当索引设置为私有时,如何确保访问缓冲区是私有的 7 年前 |
![]() |
koshachok · 使用4和8个线程运行时的等时间执行 7 年前 |
![]() |
avocado · OpenMP的线性加速比 7 年前 |
![]() |
jww avp · 从OpenMP并行循环中提升两个类变量 7 年前 |
![]() |
Dmitry · Fortran OpenMP代码比其非并行版本慢得多 7 年前 |
![]() |
Amos · 为什么openmp不基于手动NUMA绑定放置线程? 7 年前 |