Oracle® Solaris Studio 12.4:OpenMP API 用户指南

退出打印视图

更新时间: 2014 年 12 月
 
 

6.1 确定变量作用域概述

在 OpenMP 程序中,会为 OpenMP 构造中引用的每个变量确定作用域。通常,可通过两种方法之一来确定构造中所引用变量的作用域。编程人员使用数据共享属性子句显式声明变量的作用域,或者编译器根据 OpenMP 4.0 规范第 2.14.1 节的“数据共享属性规则”自动应用有关预先确定或隐式确定作用域的规则。有关数据共享属性的更多信息,请参见 OpenMP 4.0 规范的第 2.14.3 节“数据共享属性子句”。

显式确定变量作用域的过程非常乏味,而且容易出错,尤其是对于大型和复杂的程序而言。而且,数据共享属性规则可能会产生一些意外的结果。task 指令增加了确定作用域的复杂性和难度。

Oracle Solaris Studio 编译器支持的自动确定作用域功能(称为自动确定作用域)使得程序员无需显式确定变量的作用域。通过自动确定作用域功能,编译器可在简单的用户模型中使用一些智能规则来确定变量的作用域。

在早期编译器发行版中,自动确定作用域功能只能用于 parallel 构造中的变量。当前的 Oracle Solaris Studio 编译器将自动确定作用域功能的范围扩展到了 task 构造中引用的标量变量。