求真百科欢迎当事人提供第一手真实资料,洗刷冤屈,终结网路霸凌。

GPU并行算法·N·S方程高性能计算查看源代码讨论查看历史

事实揭露 揭密真相
跳转至: 导航搜索

来自 孔夫子网 的图片

GPU并行算法·N·S方程高性能计算》,白智勇,李志辉 著,出版社: 科学出版社。

读书,可以与时俱进,开阔自己,提高自己,充实自己,完善自己,是全球文化[1]科技知识扩容和更新的需要,是知识[2]经济和社会发展的要求。

内容简介

本书共九章,重点通过基础知识讲解、算例剖析和技巧提示,引导读者熟悉GPU并行算法、CUDA Fortran基础知识,进而掌握基于CUDA Fortran的GPU高性能计算应用软件设计方法。其中,第1章介绍相关研究背景;第2~6章介绍基于CUDA Fortran的GPU通用计算基本概念、编程方法与优化原则;第7~9章介绍基于MPI+CUDA的N-S方程数值求解。书中的示例的构思以及分析过程是本书…具价值的部分,读者通过阅读这些内容,对GPGPU技术做到融会贯通、举一反三,只要掌握了这些简单的示例,更复杂的问题也能迎刃而解。在本书的帮助下,读者不需熟悉GPU硬件或者CUDAC(虽然熟悉这两者有助于使用本书)就可完成GPU的学习和使用。

目录

第1章 绪论 1

1.1 一个故事:为什么需要并行 1

1.2 并行计算简介 3

1.2.1 机群系统 3

1.2.2 并行计算与多核技术 4

1.2.3 异构计算机 6

1.3 GPU计算与CUDA 9

1.4 CUDA Fortran 14

1.5 GPU并行计算技术与高超声速流动模拟 15

参考文献 19

第2章 CUDA Fortran编译器 24

2.1 PGI Fortran编译器简介 24

2.2 编译CUDA Fortran程序 35

2.2.1 可视化版PGI编译器的使用 35

2.2.2 使用命令行编译程序 43

2.3 Fortran程序驱动GPU 44

2.3.1 GPU算法的CUDA Fortran程序实现 44

2.3.2 在主机与CUDA卡之间传输数据 47

2.3.3 GPU端的计算 48

2.4 错误信息获取 51

参考文献 52

第3章 CUDA线程模型 54

3.1 CUDA并行计算思维 54

3.1.1 并行算法设计 54

3.1.2 SIMD模型 56

3.1.3 SIMT模型 57

3.2 CUDA线程的主要特性 58

3.2.1 子程序属性限定符attributes 58

3.2.2 kernel函数 59

3.3 CUDA线程结构 60

3.3.1 线程block和线程grid 60

3.3.2 block内线程与block间线程 63

3.3.3 CUDA线程与GPU硬件对应关系 63

3.3.4 CUDA线程设计 64

3.4 执行配置 66

3.5 device子程序 74

3.6 自动生成kernel简介 75

3.6.1 !$cuf 基本用法 75

3.6.2 !$cuf 使用注意事项 76

3.7 使用module封装GPU数据与程序 77

3.7.1 用module封装数据 77

3.7.2 用module封装设备端子程序 78

3.8 CUDA线程同步 79

3.9 小结 80

参考文献 81

第4章 CUDA存储模型 82

4.1 GPU设备端变量 82

4.1.1 GPU内存 82

4.1.2 变量限定符 83

4.1.3 变量类型与内存分配 84

4.2 device变量 84

4.3 managed变量 88

4.4 pinned变量 90

4.5 shared变量 93

4.6 local变量 96

4.7 constant变量 96

4.8 texture变量 97

4.9 设备端派生数据类型 98

参考文献 100

第5章 CUDA任务级并行 101

5.1 CUDA流管理 101

5.1.1 什么是流 101

5.1.2 流的创建与销毁 102

5.1.3 流的使用 104

5.1.4 流的用法举例 107

5.2 CUDA事件管理 109

5.2.1 什么是事件 109

5.2.2 事件基本用法 110

5.2.3 事件在任务计时中的应用 111

5.2.4 事件在任务管理中的应用 116

5.3 GPU设备管理 118

5.3.1 设备切换 118

5.3.2 设备参数查询与修改 119

5.3.3 设备端变量存储位置 123

5.3.4 GPU卡间数据通信 124

参考文献 126

第6章 CUDA Fortran程序优化 127

6.1 Fortran程序性能优化一般准则 127

6.2 矩阵乘法CUDA程序优化 130

6.2.1 优化一:使用local变量 132

6.2.2 优化二:使用shared变量 132

6.2.3 kernel的调用 135

6.3 线程block优化设计 136

6.3.1 GPU微架构与CUDA线程模型 136

6.3.2 线程block设计 140

6.3.3 local内存使用技巧 142

参考文献 143

第7章 高超声速流场数学模型 144

7.1 高超声速绕流流场问题描述 144

7.2 控制方程 145

7.3 组分热力学特性 148

7.3.1 统计热力学方法 148

7.3.2 拟合函数法 149

7.4 组分输运特性 150

7.4.1 黏性系数 150

7.4.2 热传导系数 151

7.4.3 扩散系数 151

7.4.4 混合气体输运特性 152

7.5 化学动力学模型 152

7.5.1 纯空气化学反应 152

7.5.2 化学反应源项 153

7.5.3 化学反应速率系数 154

7.6 N-S方程空间离散 155

7.6.1 定解条件 156

7.6.2 有限体积方法 158

7.6.3 差分格式 158

7.6.4 通量分裂 159

7.6.5 高阶迎风型格式 161

7.6.6 高维问题 163

7.7 时间迭代 165

7.7.1 显式方法 165

7.7.2 隐式方法 167

7.8 边界条件 170

7.8.1 虚拟网格法 171

7.8.2 物理边界条件处理方法 171

7.8.3 壁面催化 174

参考文献 174

第8章 N-S方程并行算法 177

8.1 并行计算术语 177

8.2 MPI并行环境 179

8.2.1 MPI进程级并行计算 179

8.2.2 MPI程序编译与运行 180

8.2.3 并行进程的创建与回收 181

8.2.4 MPI通信 182

8.2.5 非阻塞通信 186

8.2.6 组通信 188

8.2.7 MPI高级话题 189

8.3 流场区域分解的N-S方程并行算法 192

8.3.1 高超声速流场的N-S方程数值求解 192

8.3.2 流场并行算法 194

8.3.3 流场并行算法优化 195

8.4 结构网格N-S方程并行计算负载均衡 198

8.4.1 并行计算负载估算 198

8.4.2 LPT负载分配 199

8.4.3 区域分解对CFD效率的影响 200

8.4.4 结构网格块二次剖分算法 202

8.5 N-S方程数值求解大规模高性能并行计算验证 206

8.5.1 高超声速流场计算软件HAS简介 206

8.5.2 双椭球模型风洞实验流场计算 206

8.5.3 Apollo指令舱高超声速绕流计算 209

8.5.4 高超声速圆柱绕流大规模并行计算 211

参考文献 212

第9章 N-S方程求解的GPU异构并行算法 214

9.1 数据依赖关系 214

9.1.1 数据依赖性分析 214

9.1.2 无数据依赖隐式算法 215

9.2 CFD功能模块kernel设计 220

9.2.1 无黏项空间离散 221

9.2.2 流场参数空间梯度计算 228

9.2.3 黏性项空间离散 231

9.2.4 DPLUR隐式计算模块 231

9.2.5 其他模块 233

9.3 边界条件处理技术 234

9.3.1 适于CUDA线程的边界网格单元分配方法 235

9.3.2 对接边界数据交换 236

9.4 CFD功能模块kernel调用 237

9.4.1 线程block与grid设计 237

9.4.2 CUDA任务级并行 239

9.4.3 多GPU设备问题 241

9.4.4 提升GPU并行计算效率的辅助措施 242

9.5 数据结构 246

9.5.1 GPU设备数据存储策略 246

9.5.2 常量数据定义 246

9.5.3 边界条件数据结构 248

9.5.4 网格块数据结构 249

9.6 CUDA算法的可靠性 251

9.6.1 确保GPU异构并行CFD算法可靠性的基本方法 251

9.6.2 算例验证 252

参考文献 260

附录A 纯空气化学非平衡模型相关常数 262

附录B N-S方程及其无黏通量特征分裂 271

B.1 N-S方程无量纲化 271

B.2 雅可比矩阵及其特征值 272

B.3 以特征值表达的雅可比矩阵 274

B.4 以特征值表达的无黏通量 276

B.5 无黏通量Van Leer分裂表达式 276

附录C 化学源项及黏性通量雅可比矩阵 278

C.1 化学源项雅可比矩阵 278

C.2 黏性通量雅可比矩阵及其分裂 279

附录D 结构网格半自动生成工具AutoMesh 283

参考文献

  1. 文化的作用是什么,光明网,2015-10-14
  2. 什么是知识?,搜狐,2016-08-13