【发布时间】:2011-01-07 09:26:51
【问题描述】:
关于多线程代码的 OpenMP 问题:
线程是否共享所有全局变量?如何将某个全局变量设为主线程私有?
谢谢
PS:这是一个C代码。
【问题讨论】:
-
什么语言,C 还是 fortran?两种语言的细节有点不同。另外,如果是 fortran,您是否尝试私有公共块?
关于多线程代码的 OpenMP 问题:
线程是否共享所有全局变量?如何将某个全局变量设为主线程私有?
谢谢
PS:这是一个C代码。
【问题讨论】:
如果我没记错的话
#pragma omp threadprivate
全局变量有点棘手,如果它们必须被初始化,你必须使用 copyfirst 指令(我认为这是正确的名称)。线程私有变量也可能带来重大损失,在某些实现中,变量访问变成了函数调用。
【讨论】: