| 作 者: | 英特尔亚太研发有限公司、并行科技 编著 |
| 出版社: | 清华大学出版社 |
| 丛编项: | |
| 版权说明: | 本书为出版图书,暂不支持在线阅读,请支持正版图书 |
| 标 签: | 软件工程/开发项目管理 |
| ISBN | 出版时间 | 包装 | 开本 | 页数 | 字数 |
|---|---|---|---|---|---|
| 未知 | 暂无 | 暂无 | 未知 | 0 | 暂无 |
目 录
第1章 并行开发理论基础\t
1.1 并行相关概念\t
1.1.1 并发与并行、并行度\t
1.1.2 粒度\t
1.1.3 加速比及其定律\t
1.1.4 可扩展性与并行效率\t
1.1.5 负载均衡\t
1.1.6 吞吐量与延迟\t
1.1.7 热点与瓶颈\t
1.2 多核并行\t
1.2.1 多核软硬件现实\t
1.2.2 多核架构\t
1.2.3 多核并行手段\t
1.2.4 多核并行设计方法\t
1.2.5 多核多线程系统\t
1.2.6 多核多线程同步\t
1.2.7 多核多线程实现的问题\t
1.3 小结\t
第2章 英特尔Parallel Studio基础\t
2.1 英特尔Parallel Studio介绍\t
2.1.1 英特尔 Parallel Studio背景\t
2.1.2 英特尔 Parallel Studio的组成\t
2.1.3 英特尔 Parallel Studio的特色\t
2.1.4 英特尔 Parallel Studio的使用者\t
2.2 英特尔Parallel Studio快速上手\t
2.2.1 英特尔 Parallel Studio的下载安装\t
2.2.2 选择案例\t
2.2.3 实践动手第一步:采用Parallel Studio运行串行程序\t
2.2.4 实践动手第二步:选用合适的实现对代码并行化\t
2.2.5 实践动手第三步:定位错误\t
2.2.6 实践动手第四步:性能优化\t
2.3 小结\t
第3章 英特尔Parallel Composer详解\t
3.1 Composer概述\t
3.2 英特尔C/C++编译器\t
3.2.1 自动并行和OpenMP并行\t
3.2.2 过程间优化\t
3.2.3 档案导引优化\t
3.2.4 编译器向量化\t
3.3 英特尔并行调试器\t
3.3.1 英特尔并行调试器概述\t
3.3.2 线程数据共享侦测\t
3.3.3 可重入函数调用侦测\t
3.3.4 SSE寄存器窗口\t
3.3.5 OpenMP多线程调试\t
3.3.6 并行区域的串行执行\t
3.4 英特尔TBB线程构建模块\t
3.4.1 英特尔TBB概述\t
3.4.2 功能模块分类与介绍\t
3.4.3 编译和运行TBB多线程程序\t
3.5 英特尔IPP性能基元\t
3.5.1 英特尔IPP概述\t
3.5.2 主要函数及其功能\t
3.5.3 编译和运行\t
3.6 小结\t
第4章 并行化方法\t
4.1 基本概念\t
4.1.1 Amdahl定律\t
4.1.2 进程与线程\t
4.2 并行化方法\t
4.3 并行化设计\t
4.3.1 任务划分\t
4.3.2 功能划分\t
4.3.3 并行化开发中的一些思考\t
4.4 案例分析:用蒙特卡罗方法计算π值\t
4.5 小结\t
第5章 英特尔Parallel Composer案例分析\t
5.1 案例5-1:Composer的使用——向量化和自动并行化\t
5.2 案例5-2:并行调试器的使用\t
5.3 案例5-3:通过TBB进行字符串查找\t
5.4 案例5-4:IPP压缩和解压缩案例介绍\t
5.5 小结\t
第6章 英特尔Parallel Inspector详解\t
6.1 Inspector概述\t
6.2 启动Inspectort\t
6.2.1 工作流程\t
6.2.2 启动\t
6.3 配置查找错误的类型和粒度\t
6.3.1 基于线程的相关错误及粒度\t
6.3.2 基于内存的相关错误及粒度\t
6.4 定位和解决发现的错误\t
6.4.1 检查错误\t
6.4.2 查看和分析错误\t
6.5 小结\t
第7章 软件纠错方法\t
7.1 基本概念\t
7.1.1 软件查错或纠错\t
7.1.2 白盒测试\t
7.1.3 黑盒测试\t
7.2 并行软件的纠错\t
7.3 线程并行的常见错误\t
7.3.1 线程间死锁\t
7.3.2 线程间竞争\t
7.3.3 内存泄露\t
7.4 小结\t
第8章 并行软件纠错案例\t
8.1 案例8-1:线程间相互作用导致的死锁问题\t
8.2 案例8-2:线程竞争\t
8.3 案例8-3:内存泄露\t
8.4 小结\t
第9章 英特尔Parallel Amplifier详解\t
9.1 Amplifier概述\t
9.1.1 如何开始Amplifier\t
9.1.2 如何使用符号信息\t
9.1.3 环境和对象\t
9.2 Amplifier的几个概念\t
9.3 Amplifier的分析运行\t
9.3.1 分析运行的几个选项\t
9.3.2 选择分析模式\t
9.3.3 如何选择分析模式\t
9.3.4 如何在命令行下运行分析模式\t
9.3.5 热点:分析程序哪里耗时\t
9.3.6 并行度:展现并行程序的另外一个特点\t
9.3.7 锁和等待:分析程序在哪里等待\t
9.3.8 选择数据采集的时段\t
9.4 Amplifier中浏览性能数据结果\t
9.4.1 总览\t
9.4.2 在Bottom-up和Top-down中切换\t
9.4.3 选择和管理栈类型\t
9.4.4 选择颜色方案\t
9.4.5 按照不同类型划分组\t
9.4.6 在命令行模式下查看性能数据\t
9.5 Amplifier解释性能数据结果\t
9.5.1 总览\t
9.5.2 解释热点分析结果\t
9.5.3 解释并行度分析结果\t
9.5.4 解释锁和等待分析结果\t
9.6 Amplifier中的源代码\t
9.7 Amplifier中对比性能数据结果\t
9.8 Amplifier中管理结果文件\t
9.9 小结\t
第10章 性能优化方法\t
10.1 性能优化概述\t
10.1.1 性能和性能优化是计算机领域不变的主题\t
10.1.2 性能优化的定义\t
10.2 性能优化通用方法\t
10.2.1 性能优化的顺序\t
10.2.2 系统级别的性能优化\t
10.2.3 应用级别的性能优化\t
10.2.4 微架构级别的性能优化\t
10.2.5 性能优化工作循环\t
10.2.6 性能优化循环的常见问题\t
10.3 并行应用性能优化方法\t
10.3.1 概述\t
10.3.2 减少关键路径上的时间\t
10.3.3 检查是否选择最优的并行方法\t
10.3.4 检查是否选择合适的层级开始并行\t
10.3.5 Amdahl定律的检查:减少串行部分的比例\t
10.3.6 检查程序的负载均衡问题\t
10.3.7 检查程序的粒度问题\t
10.3.8 采用合适的线程库\t
10.3.9 检查同步性能问题\t
10.3.10 检查硬件导致的扩展性问题\t
10.4 小结\t
第11章 性能优化案例\t
11.1 IO并行:系统级优化案例\t
11.2 锁的实现:锁优化案例\t
11.3 同步与负载均衡:生产消费类型的优化案例\t
11.4 优化临界区:WinThread循环计算型优化案例\t
11.5 负载均衡与归约:OpenMP循环计算型优化案例\t
11.6 线程数,桶数与锁:Hash表与TBB优化案例\t
11.7 选择合适的层级并行:任务与数据并行优化案例\t
11.8 避免硬件性能瓶颈:内存与高速缓存优化案例\t
11.9 算法选择:排序优化与TBB案例\t
11.10 内存操作TBB优化案例\t
11.11 小结\t
第12章 英特尔Parallel Advisor详解\t
12.1 Advisor基础\t
12.1.1 Advisor总览\t
12.1.2 如何开始Advisor\t
12.2 Advisor工作流程\t
12.3 Annotations\t
12.4 Advisor 工具\t
12.4.1 Survey\t
12.4.2 Suitability\t
12.4.3 Correctness\t
12.5 使用案例\t
12.5.1 SpMV并行化\t
12.5.2 DGEMM并行化\t
12.6 小结\t
第13章 总体系统化案例\t
13.1 数独\t
13.1.1 串行算法\t
13.1.2 并行优化\t
13.1.3 小结\t
13.2 最短路径\t
13.2.1 串行算法\t
13.2.2 并行优化\t
13.2.3 小结\t
13.3 基数排序\t
13.3.1 串行算法\t
13.3.2 并行优化\t
13.3.3 小结\t
13.4 骑士巡游\t
13.4.1 串行算法\t
13.4.2 并行优化\t
13.4.3 小结\t
13.5 商业软件Paraview\t
13.5.1 问题描述\t
13.5.2 并行优化\t
13.5.3 小结\t
附录A 英文术语表\t