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.2 内存模型

当多个线程异步访问同一变量时,无法保证这些线程执行的内存访问互为原子操作。一些依赖实现的因素和依赖应用程序的因素会对访问是否为原子操作产生影响。某些变量占用的内存空间可能比目标平台上最大的原子内存操作所占用的空间大。某些变量的存储方式可能是未对齐的或者其对齐方式是未知的,因此编译器或运行时系统可能需要使用多个 load/store 操作来访问变量。有时,使用多个 load/store 操作会让代码序列的运行速度更快。