JavaScript is required to for searching.
跳过导航链接
退出打印视图
Oracle Solaris Studio 12.2:OpenMP API 用户指南
search filter icon
search icon

文档信息

前言

1.  OpenMP API 简介

2.  编译并运行 OpenMP 程序

3.  实现定义的行为

3.1 任务调度点

3.2 内存模型

3.3 内部控制变量

3.4 线程的动态调整

3.5 循环指令

3.6 构造

3.6.1 SECTIONS

3.6.2 SINGLE

3.6.3 ATOMIC

3.7 例程

3.7.1 omp_set_schedule()

3.7.2 omp_set_max_active_levels()

3.7.3 omp_get_max_active_levels()

3.8 环境变量

3.9 Fortran 问题

3.9.1 THREADPRIVATE 指令

3.9.2 SHARED 子句

3.9.3 运行时库定义

4.  嵌套并行操作

5.  任务处理

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

7.  作用域检查

8.  性能注意事项

A.  子句在指令中的放置

B.  转换为 OpenMP

索引

3.9 Fortran 问题

以下内容仅适用于 Fortran。

3.9.1 THREADPRIVATE 指令

如果要在两个连续的活动并行区域之间保持的线程(初始线程除外)的 threadprivate 对象中的数据值条件不能全部成立,则第二个区域中的可分配数组的分配状态可能为“当前未分配”。

3.9.2 SHARED 子句

如果将共享变量传递到非内在过程,可能导致该共享变量的值在过程引用之前被复制到临时存储中,并在过程引用之后又从临时存储中复制到实元参数存储中。仅当 OpenMP 3.0 规范第 88 页的 2.9.3.2 节中的条件 a、b、c 成立时,才会发生这种向临时存储复制数据以及从临时存储向外复制数据的情况,这三个条件如下:

3.9.3 运行时库定义

此实现中同时提供了头文件 omp_lib.h 和模块文件 omp_lib

在 Solaris 平台中,采用参数的 OpenMP 运行时库例程是通过通用接口扩展的,因此可以适应不同 Fortran KIND 类型的参数。