JavaScript is required to for searching.
跳过导航链接
退出打印视图
Oracle Solaris Studio 12.3:OpenMP API 用户指南     Oracle Solaris Studio 12.3 Information Library (简体中文)
search filter icon
search icon

文档信息

前言

1.  OpenMP API 简介

2.  编译并运行 OpenMP 程序

3.  实现定义的行为

4.  嵌套并行操作

5.  任务处理

5.1 任务处理模型

5.2 数据环境

5.3 任务处理示例

5.4 编程注意事项

5.4.1 THREADPRIVATE 和线程特定的信息

5.4.2 锁

5.4.3 对堆栈数据的引用

6.  自动确定变量的作用域

7.  作用域检查

8.  性能注意事项

A.  子句在指令中的放置

索引

5.2 数据环境

task 指令采用以下数据属性子句,这些子句可定义任务的数据环境:

在任务内对 shared 子句中列出的变量的所有引用是指在 task 指令之前一看便知的同名变量。

对于每个 privatefirstprivate 变量,都会创建一个新存储,并且对 task 构造词法范围内的原始变量的所有引用都会被对新存储的引用所替换。遇到任务时,将会使用原始变量的值初始化 firstprivate 变量。

OpenMP 版本 3.0 规范(第 2.9.1 节)介绍了如何确定在并行、任务和工作共享区域中所引用变量的数据共享属性。

构造中引用的变量的数据共享属性可以是以下属性之一:预先确定显示确定隐式确定。具有显式确定数据共享属性的变量是那些在给定构造中引用,并在构造的数据共享属性子句中列出的变量。具有隐式确定数据共享属性的变量是那些在给定构造中引用、不具有预先确定数据共享属性,并且不在构造的数据共享属性子句中列出的变量。

有关如何隐式确定变量的数据共享属性的规则可能并不总是很直观。为避免意外,请确保使用数据共享属性子句显式确定任务构造中引用的所有变量的作用域,而不是依赖 OpenMP 隐式作用域规则。