文档信息
前言
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_num_threads()
3.7.2 omp_set_schedule()
3.7.3 omp_set_max_active_levels()
3.7.4 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. 子句在指令中的放置
索引
sections 构造中的结构化块在静态(不指定块大小)方式下分配给组中的线程,从而使每个线程获得的连续结构化块数量大致相等。
遇到 single 构造的第一个线程将会执行该构造。
此实现通过使用一个名为 critical 的特殊构造封闭目标语句来替换所有 atomic 指令。此操作会在程序中的所有原子区域之间强制进行独占访问,无论这些区域是否更新相同或不同的存储位置。