OpenMP 的全局变量

Posted

技术标签:

【中文标题】OpenMP 的全局变量【英文标题】:Global variable with OpenMP 【发布时间】:2011-01-07 09:26:51 【问题描述】:

关于多线程代码的 OpenMP 问题:

线程是否共享所有全局变量?如何将某个全局变量设为主线程私有?

谢谢

PS:这是一个C代码。

【问题讨论】:

什么语言,C 还是 fortran?两种语言的细节有点不同。另外,如果是 fortran,您是否尝试私有公共块? 【参考方案1】:

如果我没记错的话

#pragma omp threadprivate

全局变量有点棘手,如果它们必须被初始化,你必须使用 copyfirst 指令(我认为这是正确的名称)。线程私有变量也可能带来重大损失,在某些实现中,变量访问变成了函数调用。

【讨论】:

以上是关于OpenMP 的全局变量的主要内容,如果未能解决你的问题,请参考以下文章

并行任务中的 C++ OpenMP 变量可见性

OpenMP 子句共享与关键

Rust 全局变量

什么是全局变量

【C语言笔记】<二十一>内部全局变量和外部全局变量

python函数中局部变量与全局变量遵守规则