Ric*_*ard 5 c++ openmp shared-memory
我知道我可以通过使用默认情况下告诉OpenMP不要在并行区域内共享变量
#pragma omp parallel default none
Run Code Online (Sandbox Code Playgroud)
但有没有办法在全球范围内设置?似乎全局默认是所有未声明为私有的东西都是共享的,至少在我的应用程序中,还有许多应该是私有的东西而不是应该共享的东西.
默认情况下,OpenMP中的所有变量都是共享的.如果需要一组私有变量,则需要在private子句中的并行pragma伪指令中指定这些变量.如果你使用
#pragma omp parallel default none
Run Code Online (Sandbox Code Playgroud)
您需要指定私有变量和共享变量.例如:
#pragma omp parallel default(none) private(i,j) shared(a,b)
Run Code Online (Sandbox Code Playgroud)
参考文献:
[1] http://en.wikipedia.org/wiki/OpenMP#OpenMP_clauses
[2] https://computing.llnl.gov/tutorials/openMP/#ClausesDirectives