图书介绍

OpenACC并行程序设计 性能优化实践指南PDF|Epub|txt|kindle电子书版本网盘下载

OpenACC并行程序设计 性能优化实践指南
  • (美)罗布·法伯(RobFarber)编著;吴长江,阚光远译 著
  • 出版社: 北京:机械工业出版社
  • ISBN:9787111576754
  • 出版时间:2017
  • 标注页数:246页
  • 文件大小:36MB
  • 文件页数:266页
  • 主题词:并行程序-程序设计

PDF下载


点此进入-本书在线PDF格式电子书下载【推荐-云解压-方便快捷】直接下载PDF格式图书。移动端-PC端通用
种子下载[BT下载速度快]温馨提示:(请使用BT下载软件FDM进行下载)软件下载地址页直链下载[便捷但速度慢]  [在线试读本书]   [在线获取解压码]

下载说明

OpenACC并行程序设计 性能优化实践指南PDF格式电子书版下载

下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。

建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!

(文件页数 要大于 标注页数,上中下等多册电子书除外)

注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具

图书目录

第1章 从串行编程到并行编程1

1.1 简单的数据并行循环1

1.1.1 OpenACC内核构件与并行构件对比4

1.1.2 OpenACC并行的多种形式6

1.1.3 accFill_ex2运行时结果7

1.2 简单的任务并行示例8

1.3 Amdahl定律及其扩展9

1.3.1 大O表示法和数据传输11

1.3.2 accTask.cpp代码的扩展性12

1.4 并行执行和竞争条件14

1.5 无锁编程17

1.6 控制并行资源20

1.7 让生活更简单22

1.8 参考文献23

第2章 性能导向开发24

2.1 测试代码:共轭梯度法25

2.1.1 代码编译25

2.1.2 初始测试26

2.2 描述并行度28

2.2.1 加速waxpby28

2.2.2 加速dot31

2.2.3 加速matvec32

2.3 描述数据移动34

2.4 优化循环39

2.4.1 缩短向量长度40

2.4.2 增加并行度41

2.5 在多核系统中并行运行43

2.6 小结44

第3章 使用Score-P和Vampir分析混合应用性能46

3.1 性能分析技术和术语47

3.2 逐步性能提升48

3.3 激光驱动电子束的粒子单元模拟48

3.4 通过代码插装准备性能测量49

3.5 在应用程序执行期间记录性能信息50

3.6 第一个并行PIConGPU实现51

3.7 释放主机进程53

3.8 优化GPU内核53

3.9 增加GPU任务并行54

3.10 使用Score-P和Vampir记录OpenACC运行时事件55

3.11 小结56

3.12 参考文献56

第4章 数据传输流水线化58

4.1 初识流水线59

4.2 示例代码:曼德勃罗发生器59

4.2.1 分块计算62

4.2.2 分块数据拷贝63

4.2.3 异步执行63

4.3 在多种设备上实现流水线65

4.4 结论69

第5章 高级数据管理70

5.1 非结构化数据区域71

5.2 动态数据成员的聚合类型73

5.3 C++类数据管理75

5.3.1 创建通用列表容器类77

5.3.2 accList更新方法79

5.4 在例程中使用全局和模块变量80

5.5 仅在设备端可用的数据82

5.5.1 映射设备端数据83

5.5.2 MPI进程间共享设备端数据84

5.6 示例代码86

5.7 运行时结果91

5.8 小结93

第6章 循环执行调优94

6.1 loop构件95

6.2 基本loop优化子句97

6.2.1 auto子句97

6.2.2 independent子句98

6.2.3 seq子句98

6.2.4 reduction子句99

6.2.5 collapse子句101

6.3 高级loop优化子句102

6.3.1 gang、worker和vector子句102

6.3.2 tile子句102

6.4 性能测试结果104

6.5 小结105

第7章 多设备编程106

7.1 简介106

7.2 三种多设备编程方法107

7.2.1 处理设备相关性和选择设备107

7.2.2 单线程多设备编程108

7.2.3 多线程多设备编程108

7.2.4 多进程多设备编程109

7.3 示例:2D泊松方程的雅可比求解器109

7.4 域分解111

7.4.1 单线程多设备编程111

7.4.2 多线程多设备编程114

7.4.3 多进程多设备编程116

7.4.4 通信与计算重叠120

7.5 调试和分析122

7.5.1 使用cuda-memcheck和cuda-gdb调试122

7.5.2 使用nvprof和NVIDIA Visual Profiler分析123

7.6 小结123

7.7 参考文献124

第8章 Stencil和Feldkamp算法移植125

8.1 简介125

8.2 实验环境126

8.2.1 Feldkamp-Davis-Kress算法126

8.2.2 2D热方程133

8.3 OpenMP/OpenACC混合编程138

8.4 小结141

8.5 参考文献142

第9章 加速3D波方程143

9.1 简介143

9.2 示例代码:计算3D标量波方程144

9.3 栈变成堆146

9.4 测量主机基准扩展性148

9.4.1 创建OpenMP编译环境148

9.4.2 编译OpenMP代码149

9.4.3 运行OpenMP代码150

9.5 使用OpenACC工具150

9.5.1 添加OpenACC并行指令150

9.5.2 编译OpenACC并行指令151

9.5.3 理解统一内存151

9.5.4 使用统一内存152

9.5.5 运行统一内存152

9.5.6 使用可视化分析器分析统一内存153

9.6 使用OpenACC数据指令155

9.6.1 编译OpenACC数据指令156

9.6.2 分析OpenACC数据指令156

9.6.3 运行OpenACC数据指令158

9.7 OpenACC多核系统158

9.7.1 编译OpenACC多核159

9.7.2 在多核系统上运行OpenACC160

9.8 小结160

9.9 参考文献161

第10章 应用程序开发详解162

10.1 CloverLeaf简介162

10.1.1 流体力学方案162

10.1.2 测试用例163

10.2 开发平台:Cray XK6163

10.3 开发OpenACC版本CloverLeaf164

10.3.1 热点164

10.3.2 独立内核加速165

10.3.3 多个内核加速166

10.3.4 GPU上实现完全驻留167

10.3.5 增加问题规模167

10.3.6 与混合MPI/OpenMP比较169

10.3.7 混合MPI/OpenACC169

10.3.8 版本A:初始性能169

10.3.9 版本B:内循环依赖170

10.3.10 版本C:嵌套循环和全局变量173

10.3.11 版本D:多GPU,减少隐式传输174

10.3.12 版本E:OpenACC同步等待175

10.3.13 GPU优化对CPU的影响178

10.3.14 多GPU扩展179

10.4 结论180

10.4.1 CPU上的OpenACC实现180

10.4.2 异构计算182

10.5 小结183

10.6 扩展信息184

第11章 GPU加速分子动力学聚类分析185

11.1 简介185

11.2 MD聚类分析概述186

11.2.1 聚类算法187

11.2.2 QCP快速计算成对RMSD188

11.2.3 原子选择和轨迹数据结构189

11.2.4 不相似矩阵计算190

11.3 硬件架构注意事项191

11.4 实现192

11.4.1 性能评估测试用例192

11.4.2 存储器布局优化192

11.4.3 QCP内积循环192

11.4.4 手写向量化QCP内积循环194

11.4.5 代码适配和使用OpenACC指令196

11.5 性能测试结果200

11.6 小结202

11.7 致谢203

11.8 参考文献203

第12章 增量式加速RI-MP2电子结构理论的相关方法206

12.1 简介206

12.2 原理208

12.3 实现209

12.3.1 GPU-1209

12.3.2 GPU-2210

12.3.3 GPU-3211

12.3.4 GPU-4212

12.3.5 GPU-5213

12.3.6 GPU-6214

12.3.7 GPU-7215

12.3.8 GPU-8216

12.4 结果217

12.4.1 计算细节217

12.4.2 问题规模扩展218

12.4.3 设备数量扩展219

12.4.4 总性能220

12.5 小结222

12.6 致谢223

12.7 参考文献223

第13章 将大型传统气候和天气建模代码移植到GPU上226

13.1 简介226

13.2 移植方法:步骤详解228

13.2.1 简化大气模型228

13.2.2 步骤1:添加并行区域229

13.2.3 步骤2:管理数据传输231

13.2.4 步骤3:基本优化233

13.2.5 并行循环包含子例程调用235

13.2.6 CUDA接口237

13.3 性能优化239

13.4 辐射参数化的结果241

13.5 参考文献243

热门推荐