作品简介

OpenMP日益增加的复杂性使其学习门槛不断升高,本书回归OpenMP初的设计哲学,提炼出大多数程序员常用的21项核心知识——称为OpenMP“通用核心”,为零基础读者搭建了从通用核心到OpenMP多线程编程的高效学习阶梯。本书由OpenMP技术专家撰写,内容涵盖并行计算的核心设计模式、共享工作循环构造、OpenMP数据环境、OpenMP任务和OpenMP内存模型等内容,采用编程驱动的方式,借助复杂性逐渐提高的实例来逐步引入新概念。此外,本书网站ompcore.为读者免费提供各类代码示例和练习题。

蒂莫西·G. 马特森(Timothy G. Mattson),英特尔公司高级工程师主管。

作品目录

  • 译者序
  • 序言
  • 前言
  • 第一部分做好学习OpenMP的准备
  • 第1章并行计算
  • 1.1 并行计算的基本概念
  • 1.2 并发性的兴起
  • 1.3 并行硬件
  • 1.4 多处理器计算机的并行软件
  • 第2章性能语言
  • 2.1 基础:FLOPS、加速比和并行效率
  • 2.2 阿姆达尔定律
  • 2.3 并行开销
  • 2.4 强扩展与弱扩展
  • 2.5 负载均衡
  • 2.6 用roofline模型理解硬件
  • 第3章什么是OpenMP
  • 3.1 OpenMP的历史
  • 3.2 通用核心
  • 3.3 OpenMP的主要组件
  • 第二部分OpenMP通用核心
  • 第4章线程和OpenMP编程模型
  • 4.1 OpenMP概述
  • 4.2 OpenMP程序的结构
  • 4.3 线程和fork-join模式
  • 4.4 使用线程
  • 4.5 结束语
  • 第5章并行化循环
  • 5.1 共享工作循环构造
  • 5.2 组合式并行共享工作循环构造
  • 5.3 归约
  • 5.4 循环调度
  • 5.5 隐式栅栏和nowait子句
  • 5.6 带有并行循环共享工作的Pi程序
  • 5.7 一种循环级并行策略
  • 5.8 结束语
  • 第6章OpenMP数据环境
  • 6.1 缺省存储属性
  • 6.2 修改存储属性
  • 6.3 数据环境的例子
  • 6.4 数组和指针
  • 6.5 结束语
  • 第7章OpenMP任务
  • 7.1 任务的必要性
  • 7.2 显式任务
  • 7.3 第一个例子:薛定谔程序
  • 7.4 single构造
  • 7.5 使用任务
  • 7.6 任务的数据环境
  • 7.7 利用任务的基础设计模式
  • 7.8 结束语
  • 第8章OpenMP内存模型
  • 8.1 重新审视内存层次结构
  • 8.2 OpenMP通用核心内存模型
  • 8.3 使用共享内存
  • 8.4 结束语
  • 第9章通用核心回顾
  • 9.1 管理线程
  • 9.2 共享工作构造
  • 9.3 组合式并行共享工作循环构造
  • 9.4 OpenMP任务
  • 9.5 同步和内存一致性模型
  • 9.6 数据环境子句
  • 9.7 归约子句
  • 9.8 环境变量和运行时库例程
  • 第三部分超越通用核心
  • 第10章超越通用核心的多线程
  • 10.1 用于OpenMP通用核心构造的附加子句
  • 10.2 通用核心中缺失的多线程功能
  • 10.3 结束语
  • 第11章同步和OpenMP内存模型
  • 11.1 内存一致性模型
  • 11.2 成对同步
  • 11.3 锁以及如何使用它
  • 11.4 C++内存模型和OpenMP
  • 11.5 结束语
  • 第12章超越OpenMP通用核心的硬件
  • 12.1 非统一内存访问系统
  • 12.2 SIMD
  • 12.3 设备构造
  • 12.4 结束语
  • 第13章继续OpenMP的学习
  • 13.1 来自ARB的程序员资源
  • 13.2 如何阅读OpenMP规范
  • 13.3 OpenMP规范的结构
  • 13.4 结束语
  • 术语表
展开全部