更新时间:2024-04-25 19:38:14
封面
版权信息
作者简介
译者序
序
前言
术语表
第1章 绪论
1.1 本书结构
1.2 探索设计空间
1.3 代码示例
1.4 机器配置
第2章 并行编程模型与概念
2.1 多进程与多线程
2.2 基于任务的并行编程
2.3 同步构造
2.4 阿姆达尔定律
2.5 总结
第3章 众核与多核计算机架构
3.1 执行机制
3.2 现代内存子系统
3.3 总结
第4章 编译器和运行时的交互
4.1 编译器基础
4.2 基于任务的并行模型的实现
4.3 并行编程语言的编译器
4.4 并行代码生成模式
4.5 OpenMP实现示例
4.6 总结
第5章 并行运行时基本机制
5.1 管理并行性
5.2 并行性管理与硬件结构
5.3 并行运行时系统中的内存管理
5.4 总结
第6章 互斥和原子性
6.1 互斥问题
6.2 我们应该写锁代码吗
6.3 锁的类别
6.4 锁算法的特性
6.5 锁算法
6.6 实际代码性能
6.7 如何等待
6.8 事务同步
6.9 其他串行操作
6.10 原子操作
6.11 总结
第7章 同步障和归约
7.1 同步障基本原理
7.2 同步障性能测量
7.3 同步障组件
7.4 同步障算法分类
7.5 同步障算法
7.6 归约
7.7 其他优化
7.8 总结
第8章 调度并行循环
8.1 调度目标
8.2 调度效率的理论极限
8.3 基本调度方法
8.4 映射为规范形式
8.5 编译器循环转换
8.6 循环调度单调性
8.7 静态循环调度实现
8.8 动态循环调度实现
8.9 循环调度评估
8.10 其他循环调度方案
8.11 总结
第9章 任务并行模型的运行时支持
9.1 任务描述符
9.2 任务池实现
9.3 任务同步
9.4 任务调度
9.5 任务调度约束
9.6 其他任务主题
9.7 总结
第10章 总结和感想
附录 技术缩略语
参考文献
译者简介
封底