《面向大规模应用的高性能计算编程优化》PDF下载

  • 购买积分:9 如何计算积分?
  • 作  者:文梅等著
  • 出 版 社:北京:科学出版社
  • 出版年份:2015
  • ISBN:9787030462596
  • 页数:191 页
图书介绍:大规模科学与工程计算已经成为当前科学研究不可或缺的重要手段,极大地推动了科技的发展和人类的进步。当前超级计算机已经进入千万亿次(Peta-scale)浮点计算能力的时代,但诸如高能核物理、材料化学、生命科学等一系列挑战性计算应用表现出对百亿亿次级(Exascale)计算能力的超高需求。由于GPU、MIC(又称XeonPhicoprocessor)等加速器的性能功耗比优势,基于加速器搭建异构超级计算机已经成为高性能计算领域从E级到P级发展的重要趋势,领域应用软件是发挥E级计算系统能力的保障。然而,异构体系结构在缓解通信墙、可靠性墙和能耗墙的同时,加剧了编程墙。因此,如何快速地开发大规模并行应用程序,高效率地发挥当前高性能异构系统的性能,已经成为当前异构并行计算研究面临的一个挑战性问题。作者面向真实的应用领域,选取了具有一定代表性的真实大规模科学与工程计算应用,以千万亿次的天河系列异构超级计算机(天河-1A、天河-2)为研究平台,围绕真实应用软件程序开发,研究基于GPU/MIC加速的异构系统的大规模并行计算关键技术,提出了有效的解决方案。

第1章 绪论 1

1.1 大规模应用对高性能计算的迫切需求 1

1.2 高性能计算硬件基础 3

1.2.1 多核通用处理器 3

1.2.2 众核加速器 4

1.2.3 加速器增强型异构系统 5

1.3 高性能计算编程挑战与研究现状 7

1.3.1 高性能计算编程挑战 7

1.3.2 高性能计算编程研究现状 9

参考文献 13

第2章 高性能计算并行基础 17

2.1 并行计算分类 17

2.1.1 数据并行 17

2.1.2 任务并行 18

2.2 并行计算的度量 19

2.2.1 性能 20

2.2.2 扩展性 22

2.3 并行程序测试集 23

2.3.1 Linpack 23

2.3.2 13类基准测试分类体系 24

2.3.3 其他测试集 32

参考文献 34

第3章 并行程序设计 36

3.1 共享存储计算机 36

3.1.1 共享存储体系结构 36

3.1.2 OpenMP编程 36

3.1.3 实例 40

3.2 分布式存储计算机 45

3.2.1 分布式存储体系结构 45

3.2.2 MPI消息传递机制 46

3.2.3 实例 47

3.3 大规模并行计算 52

3.3.1 混合编程模型 52

3.3.2 大规模系统节点间通信优化 55

参考文献 58

第4章 GPU并行计算 59

4.1 GPU体系结构 59

4.1.1 GPU的发展历程 59

4.1.2 GPU硬件体系结构 62

4.2 CUDA编程模型 65

4.2.1 程序结构 65

4.2.2 存储模型 67

4.3 性能优化 68

4.3.1 大规模线程并行 68

4.3.2 全局带宽的利用 69

4.3.3 SM片上资源优化 70

4.4 单节点多GPU编程 71

4.4.1 单线程多GPU编程 72

4.4.2 多线程多GPU编程 74

4.4.3 多GPU P2P直接通信模式 75

4.5 大规模CPU-GPU异构计算 77

参考文献 79

第5章 MIC并行计算 81

5.1 MIC体系结构 81

5.1.1 MIC体系结构概述 81

5.1.2 MIC计算核 82

5.1.3 MIC环形网络 84

5.1.4 MIC存储层次 85

5.2 MIC编程模式 86

5.2.1 offload编程模式 87

5.2.2 native编程模式 90

5.2.3 底层编程接口 91

5.3 性能优化策略 93

5.3.1 并行优化 93

5.3.2 访存优化 97

5.3.3 通信优化 99

5.4 节点内多MIC并行计算 100

5.4.1 基于stencil计算的任务划分 100

5.4.2 基于pragma卸载模式的优化 101

5.4.3 基于系统级接口的卸载模式 104

5.4.4 基于MPI-OpenMP的对称模式 109

5.4.5 不同卸载模式的比较 110

5.5 大规模CPU-MIC并行计算 111

5.5.1 大规模CPU-MIC异构系统 111

5.5.2 基于MIC加速器的大规模异构系统的编程模型 112

5.5.3 基于MIC加速器的大规模异构系统的并行优化 113

5.6 本章小结 120

参考文献 120

第6章 面向贝叶斯进化分析的大规模异构混合计算 123

6.1 引言 123

6.2 背景 125

6.2.1 MrBayes概述 125

6.2.2 同时利用CPU和GPU的挑战 126

6.3 方法 127

6.3.1 oMC3算法 127

6.3.2 负载划分策略 129

6.4 结果和讨论 131

6.4.1 实验设置 131

6.4.2 单计算节点上的性能 132

6.4.3 验证负载划分策略 134

6.4.4 多节点扩展性 135

6.5 小结 136

参考文献 136

第7章 基于CPU-GPU异构系统的双岩沉降模拟 138

7.1 概述 138

7.2 数学模型和数值方法 139

7.3 并行实现设计 141

7.3.1 基于MPI的CPU-only实现 142

7.3.2 GPU-only实现 143

7.3.3 CPU-GPU混合实现 145

7.4 实验评估与分析 149

7.4.1 实验设置和结果 149

7.4.2 单GPU性能比较与分析 151

7.4.3 扩展性评测 152

7.4.4 时间分布 156

7.5 小结 158

参考文献 158

第8章 接近纳米级精度的钙动力模拟并行计算 160

8.1 引言 160

8.2 应用描述 161

8.2.1 数学模型 161

8.2.2 数值方法 163

8.3 目标体系结构 164

8.4 实现和优化 165

8.4.1 整体策略 165

8.4.2 单协处理器利用 166

8.4.3 单节点利用 168

8.4.4 多节点效率 168

8.5 性能研究 169

8.5.1 单协处理器性能 169

8.5.2 单节点性能 170

8.5.3 弱扩展性 170

8.5.4 强扩展性 171

8.6 模拟结果 172

8.7 小结 175

参考文献 176

第9章 未来的高性能计算 178

9.1 E级计算的挑战 178

9.2 Scale up与Scale out的比较 180

9.3 未来可能的发展方向 181

9.3.1 大规模机器学习 181

9.3.2 热点方向 184

参考文献 185