我正在尝试使用 OpenMP 并行化 C 程序。
我想了解更多:
- threadprivate指令和private子句的区别和
- 在这种情况下,我们必须使用它们中的任何一个。
据我所知,区别在于threadprivate的全局范围和跨并行区域的保留值。我在几个示例中发现,当一段代码包含一些必须私有化的全局/静态变量时,这些变量包含在threadprivate列表中,并且它们的初始值使用copyin复制到私有副本中。
但是,是否有任何规则阻止我们使用private子句来处理全局/静态变量?也许有任何实现细节?
我在 OpenMP3.0 规范中找不到任何解释。