《高性能并行珠肌-多核和众核编程方法》(美)詹姆斯・赖因德斯(JamesRe | PDF下载|ePub下载
高性能并行珠肌-多核和众核编程方法 版权信息
- 出版社:机械工业出版社
- 出版时间:2017-11-01
- ISBN:9787111580805
- 条形码:9787111580805 ; 978-7-111-58080-5
高性能并行珠肌-多核和众核编程方法 本书特色
本书由Intel的技术专家撰写,系统地讲解在IntelXeon处理器和IntelXeonPhi协处理器上进行并行处理和编程的方法和技术,展示了更好地利用Intel处理器或其他多核处理器的系统计算潜力的有效方法。全书包括大量来自多个行业和不同领域的并行编程例子。每章既详细讲述所采用的编程技术,同时展示了其在IntelXeonPhi协处理器和多核处理器上的高性能结果。几十个新的例子和案例显示的“成功经验”不但展现了这些强大系统的主要特征,而且展示出如何在这些异构系统上保持并行化。
高性能并行珠肌-多核和众核编程方法 内容简介
本书由Intel的技术专家撰写,系统地讲解在IntelXeon处理器和IntelXeonPhi协处理器上进行并行处理和编程的方法和技术,展示了更好地利用Intel处理器或其他多核处理器的系统计算潜力的有效方法。全书包括大量来自多个行业和不同领域的并行编程例子。每章既详细讲述所采用的编程技术,同时展示了其在IntelXeonPhi协处理器和多核处理器上的高性能结果。几十个新的例子和案例显示的“成功经验”不但展现了这些强大系统的主要特征,而且展示出如何在这些异构系统上保持并行化。
高性能并行珠肌-多核和众核编程方法 目录
目 录
High Performance Parallelism Pearls: Multicore and Many-core Programming Approaches
出版者的话
译者序
推荐序
前 言
作者简介
第1章 引言 1
1.1 学习成功经验 1
1.2 代码现代化 1
1.3 并发算法现代化 1
1.4 向量化和数据局部性现代化 2
1.5 理解功耗使用 2
1.6 ISPC和OpenCL 2
1.7 Intel Xeon Phi协处理器特性 2
1.8 众核和新异构系统 2
1.9 书名中没有Xeon Phi与新异构架构编程 3
1.10 众核的未来 3
1.11 下载 3
1.12 更多信息 4
第2章从正确到正确&高效:Godunov
格式的Hydro2D案例学习 5
2.1 现代计算机上的科学计算 5
2.1.1 现代计算环境 6
2.1.2 CEA的Hydro2D 6
2.2 冲击流体动力学的一种数值方法 7
2.2.1 欧拉方程 7
2.2.2 Godunov方法 7
2.2.3 哪里需要优化 9
2.3 现代计算机架构的特征 9
2.3.1 面向性能的架构 9
2.3.2 编程工具和运行时 10
2.3.3 计算环境 11
2.4 通向高性能的路 11
2.4.1 运行Hydro2D 11
2.4.2 Hydro2D的结构 12
2.4.3 优化 15
2.4.4 内存使用 16
2.4.5 线程级并行 17
2.4.6 算术效率和指令级并行 24
2.4.7 数据级并行 26
2.5 总结 32
2.5.1 协处理器与处理器 32
2.5.2 水涨船高 32
2.5.3 性能策略 33
2.6 更多信息 34
第3章HBM上的SIMD与并发优化 36
3.1应用程序:HIROMB-BOOS-MODEL 36
3.2 关键应用:DMI 36
3.3 HBM执行配置文件 37
3.4 HBM优化综述 38
3.5 数据结构:准确定位位置 38
3.6 HBM上的线程并行 41
3.7 数据并行:SIMD向量化 45
3.7.1 零散的可优化部分 46
3.7.2 过早抽象是万恶之源 48
3.8 结果 50
3.9 详情分析 51
3.10 处理器与协处理器可扩展性对比 52
3.11 CONTIGUOUS属性 53
3.12 总结 54
3.13 参考文献 54
3.14 更多信息 55
第4章 流体动力学方程优化 56
4.1 开始 56
4.2 1.0版本:基础版本 57
4.3 2.0版本:线程盒 59
4.4 3.0版本:栈内存 63
4.5 4.0版本:分块 63
4.6 5.0版本:向量化 64
4.7Intel Xeon Phi协处理器上的运行结果 68
4.8 总结 69
4.9 更多信息 70
第5章 分阶段准同步栅栏 71
5.1 如何改善代码 74
5.2 如何进一步改善代码 74
5.3 超线程方阵 74
5.4关于该方案哪些地方不是*优的 75
5.5 超线程方阵编码 76
5.5.1如何确定内核间兄弟线程和内核内HT线程 77
5.5.2 超线程方阵手动分区方法 77
5.5.3 吸取教训 79
5.6 回到工作 80
5.7 数据对齐 81
5.7.1 尽可能使用对齐的数据 81
5.7.2 冗余未必是件坏事 81
5.8 深入讨论分阶段准同步栅栏 84
5.9 如何节省时间 86
5.10 几个留给读者的优化思考 90
5.11类似Xeon Phi协处理器的Xeon主机性能优化 91
5.12 总结 92
5.13 更多信息 92
第6章 故障树表达式并行求解 93
6.1 动机和背景 93
6.1.1 表达式 93
6.1.2 表达式选择:故障树 93
6.1.3 程序实例中的故障树:基本模拟 93
6.2 实例实现 94
6.3 其他因素 101
6.4 总结 101
6.5 更多信息 101
第7章 深度学习的数值优化 102
7.1 拟合目标函数 102
7.2 目标函数与主成分分析 105
7.3 软件及样例数据 106
7.4 训练数据 109
7.5 运行时间 109
7.6 扩展结果 111
7.7 总结 111
7.8 更多信息 112
第8章 优化聚集/分散模式 113
8.1 聚集/分散在Intel架构下的说明 114
8.2 聚集/分散模式在分子动力学中的应用 115
8.3 优化聚集/分散模式 117
8.3.1 提高时间和空间的局部性 117
8.3.2 选择一种适当的数据布局:AoS与SoA 118
8.3.3 AoS和SoA之间的动态转换 119
8.3.4 分摊聚集/分散和转换的开销 122
8.4 总结 123
8.5 更多信息 123
第9章N体问题直接法的众核实现 125
9.1 N体模拟 125
9.2 初始解决方案 125
9.3 理论极限 126
9.4 降低开销和对齐数据 128
9.5 优化存储层次 131
9.6 改进分块 133
9.7 主机端的优化 135
9.8 总结 136
9.9 更多信息 136
第10章 N体方法 137
10.1 快速N体方法和直接N体内核 137
10.2 N体方法的应用 138
10.3 直接N体代码 138
10.4 性能结果 141
10.5 总结 142
10.6 更多信息 142
第11章 使用OpenMP 4.0实现动态负载均衡 144
11.1 *大化硬件利用率 144
11.2 N体内核 146
11.3 卸载版本 149
11.4 **个处理器与协处理器协作版本 150
11.5 多协处理器版本 152
11.6 更多信息 155
第12章 并发内核卸载 156
12.1 设定上下文 156
12.1.1 粒子动力学 156
12.1.2 本章结构 157
12.2 协处理器上的并发内核 158
12.2.1 协处理器设备划分和线程关联 158
12.2.2 并发数据传输 163
12.3 在PD中使用并发内核卸载进行作用力计算 166
12.3.1 使用牛顿第三定律并行评估作用力 166
12.3.2 实现作用力并发计算 167
12.3.3 性能评估:之前与之后 171
12.4 总结
High Performance Parallelism Pearls: Multicore and Many-core Programming Approaches
出版者的话
译者序
推荐序
前 言
作者简介
第1章 引言 1
1.1 学习成功经验 1
1.2 代码现代化 1
1.3 并发算法现代化 1
1.4 向量化和数据局部性现代化 2
1.5 理解功耗使用 2
1.6 ISPC和OpenCL 2
1.7 Intel Xeon Phi协处理器特性 2
1.8 众核和新异构系统 2
1.9 书名中没有Xeon Phi与新异构架构编程 3
1.10 众核的未来 3
1.11 下载 3
1.12 更多信息 4
第2章从正确到正确&高效:Godunov
格式的Hydro2D案例学习 5
2.1 现代计算机上的科学计算 5
2.1.1 现代计算环境 6
2.1.2 CEA的Hydro2D 6
2.2 冲击流体动力学的一种数值方法 7
2.2.1 欧拉方程 7
2.2.2 Godunov方法 7
2.2.3 哪里需要优化 9
2.3 现代计算机架构的特征 9
2.3.1 面向性能的架构 9
2.3.2 编程工具和运行时 10
2.3.3 计算环境 11
2.4 通向高性能的路 11
2.4.1 运行Hydro2D 11
2.4.2 Hydro2D的结构 12
2.4.3 优化 15
2.4.4 内存使用 16
2.4.5 线程级并行 17
2.4.6 算术效率和指令级并行 24
2.4.7 数据级并行 26
2.5 总结 32
2.5.1 协处理器与处理器 32
2.5.2 水涨船高 32
2.5.3 性能策略 33
2.6 更多信息 34
第3章HBM上的SIMD与并发优化 36
3.1应用程序:HIROMB-BOOS-MODEL 36
3.2 关键应用:DMI 36
3.3 HBM执行配置文件 37
3.4 HBM优化综述 38
3.5 数据结构:准确定位位置 38
3.6 HBM上的线程并行 41
3.7 数据并行:SIMD向量化 45
3.7.1 零散的可优化部分 46
3.7.2 过早抽象是万恶之源 48
3.8 结果 50
3.9 详情分析 51
3.10 处理器与协处理器可扩展性对比 52
3.11 CONTIGUOUS属性 53
3.12 总结 54
3.13 参考文献 54
3.14 更多信息 55
第4章 流体动力学方程优化 56
4.1 开始 56
4.2 1.0版本:基础版本 57
4.3 2.0版本:线程盒 59
4.4 3.0版本:栈内存 63
4.5 4.0版本:分块 63
4.6 5.0版本:向量化 64
4.7Intel Xeon Phi协处理器上的运行结果 68
4.8 总结 69
4.9 更多信息 70
第5章 分阶段准同步栅栏 71
5.1 如何改善代码 74
5.2 如何进一步改善代码 74
5.3 超线程方阵 74
5.4关于该方案哪些地方不是*优的 75
5.5 超线程方阵编码 76
5.5.1如何确定内核间兄弟线程和内核内HT线程 77
5.5.2 超线程方阵手动分区方法 77
5.5.3 吸取教训 79
5.6 回到工作 80
5.7 数据对齐 81
5.7.1 尽可能使用对齐的数据 81
5.7.2 冗余未必是件坏事 81
5.8 深入讨论分阶段准同步栅栏 84
5.9 如何节省时间 86
5.10 几个留给读者的优化思考 90
5.11类似Xeon Phi协处理器的Xeon主机性能优化 91
5.12 总结 92
5.13 更多信息 92
第6章 故障树表达式并行求解 93
6.1 动机和背景 93
6.1.1 表达式 93
6.1.2 表达式选择:故障树 93
6.1.3 程序实例中的故障树:基本模拟 93
6.2 实例实现 94
6.3 其他因素 101
6.4 总结 101
6.5 更多信息 101
第7章 深度学习的数值优化 102
7.1 拟合目标函数 102
7.2 目标函数与主成分分析 105
7.3 软件及样例数据 106
7.4 训练数据 109
7.5 运行时间 109
7.6 扩展结果 111
7.7 总结 111
7.8 更多信息 112
第8章 优化聚集/分散模式 113
8.1 聚集/分散在Intel架构下的说明 114
8.2 聚集/分散模式在分子动力学中的应用 115
8.3 优化聚集/分散模式 117
8.3.1 提高时间和空间的局部性 117
8.3.2 选择一种适当的数据布局:AoS与SoA 118
8.3.3 AoS和SoA之间的动态转换 119
8.3.4 分摊聚集/分散和转换的开销 122
8.4 总结 123
8.5 更多信息 123
第9章N体问题直接法的众核实现 125
9.1 N体模拟 125
9.2 初始解决方案 125
9.3 理论极限 126
9.4 降低开销和对齐数据 128
9.5 优化存储层次 131
9.6 改进分块 133
9.7 主机端的优化 135
9.8 总结 136
9.9 更多信息 136
第10章 N体方法 137
10.1 快速N体方法和直接N体内核 137
10.2 N体方法的应用 138
10.3 直接N体代码 138
10.4 性能结果 141
10.5 总结 142
10.6 更多信息 142
第11章 使用OpenMP 4.0实现动态负载均衡 144
11.1 *大化硬件利用率 144
11.2 N体内核 146
11.3 卸载版本 149
11.4 **个处理器与协处理器协作版本 150
11.5 多协处理器版本 152
11.6 更多信息 155
第12章 并发内核卸载 156
12.1 设定上下文 156
12.1.1 粒子动力学 156
12.1.2 本章结构 157
12.2 协处理器上的并发内核 158
12.2.1 协处理器设备划分和线程关联 158
12.2.2 并发数据传输 163
12.3 在PD中使用并发内核卸载进行作用力计算 166
12.3.1 使用牛顿第三定律并行评估作用力 166
12.3.2 实现作用力并发计算 167
12.3.3 性能评估:之前与之后 171
12.4 总结
高性能并行珠肌-多核和众核编程方法 作者简介
James Reinders 英特尔软件总监,首席技术布道师。参与多个旨在加强并行编程在工业界应用的工程研究和教育项目。他对多个项目做出了贡献,包括世界上首例 Teraflop 级超级计算机(ASCI Red)和世界上首例 Teraflop 级微处理器(Intel Xeon Phi协处理器)。
Jim Jeffers 英特尔MIC(集成众核)架构专家和首席工程师,对至强融核协处理器有着较为深入与全面的研究。