混合架构超算并行程序设计与应用
¥52.00定价
作者: 储根深
出版时间:2023-08
出版社:电子工业出版社
- 电子工业出版社
- 9787121451546
- 1-2
- 466098
- 48253784-2
- 平塑
- 16开
- 2023-08
- 384
- 240
- 计算机科学与技术
- 本科 研究生及以上
内容简介
本书面向国产E级超算的体系结构和高性能计算领域,关注近年来出现的新超算硬件和新软件技术(如神威E级超算编程模式、DCU编程模式)。本书涵盖神威、曙光等超算的硬件架构与编程方法,深度结合国产超算体系结构特点,以实例的形式探讨异构超算上的高性能算法设计、优化技术及高性能软件的开发和优化方法。 本书可作为高等院校计算机科学与技术、软件工程等专业本科生或研究生的教材,使其在掌握通用计算机程序设计的基础上,进一步提升在该领域的理论知识水平和程序优化实践技能,也可作为从事高性能计算和体系结构研究的科研工作者与工程技术人员的参考资料,同时也能为关注高性能计算与超算技术发展的读者提供有益参考。 本书可作为高等院校计算机科学与技术、软件工程等专业本科生或研究生的教材,使其在掌握通用计算机程序设计的基础上,进一步提升在该领域的理论知识水平和程序优化实践技能,也可作为从事高性能计算和体系结构研究的科研工作者与工程技术人员的参考资料,同时也能为关注高性能计算与超算技术发展的读者提供有益参考。
目录
第1章 绪论 1__eol__1.1 高性能计算应用需求和意义 1__eol__1.2 混合架构超算发展趋势 2__eol__1.3 如何进行异构混合架构上的程序设计 2__eol__1.4 本书的内容和安排 3__eol__第2章 异构混合架构概述 5__eol__2.1 国际国内超算现状 5__eol__2.1.1 超算发展历程 6__eol__2.1.2 超算发展现状 8__eol__2.1.3 我国超算发展现状 12__eol__2.2 典型的混合架构计算机 13__eol__2.2.1 CPU+GPU架构:以Frontier、Summit、Aurora为代表 13__eol__2.2.2 ARM架构:日本富岳 16__eol__2.2.3 CPU+DCU:曙光超算 17__eol__2.2.4 神威主从核架构:新一代神威超算 18__eol__2.2.5 新一代天河超算 19__eol__2.3 混合架构程序设计语言与框架概述 22__eol__2.3.1 OpenMP 22__eol__2.3.2 MPI 23__eol__2.3.3 CUDA/HIP 24__eol__2.3.4 OpenACC 25__eol__2.3.5 Athread 26__eol__2.3.6 OpenCL 27__eol__2.3.7 oneAPI 28__eol__习题 29__eol__参考文献 30__eol__第3章 异构混合架构性能分析理论 31__eol__3.1 并行程序的时间开销 31__eol__3.2 相对性能 31__eol__3.3 绝对性能 36__eol__3.4 性能瓶颈 37__eol__3.4.1 计算密度 37__eol__3.4.2 访存密集与计算密集 38__eol__3.4.3 roofline性能模型 38__eol__3.4.4 roofline分析示例:SpMV 39__eol__习题 41__eol__参考文献 42__eol__第4章 CPU高性能程序设计 43__eol__4.1 内存模型与OpenMP、MPI并行编程方法 43__eol__4.2 OpenMP并行编程简介 44__eol__4.2.1 OpenMP的Hello World 45__eol__4.2.2 编译制导指令 47__eol__4.2.3 运行时库函数 49__eol__4.2.4 环境变量 49__eol__4.2.5 OpenMP offload 49__eol__4.3 MPI并行编程简介 50__eol__4.3.1 MPI基本函数 50__eol__4.3.2 MPI通信模式 55__eol__4.4 SIMD向量化 60__eol__4.4.1 CPU向量化指令集发展 60__eol__4.4.2 向量化编程实践 61__eol__4.5 性能分析工具 65__eol__4.5.1 perf工具 65__eol__4.5.2 gprof工具 69__eol__4.5.3 IPM工具 70__eol__4.5.4 Score-P工具 73__eol__习题 76__eol__第5章 神威异构众核程序设计 77__eol__5.1 神威超算及编程环境概述 77__eol__5.1.1 神威超算的背景及历史 77__eol__5.1.2 神威·太湖之光超算架构 78__eol__5.1.3 新一代神威超算架构 80__eol__5.1.4 神威编程环境 81__eol__5.1.5 访存层次 84__eol__5.2 神威众核编程 85__eol__5.2.1 众核程序结构 85__eol__5.2.2 从核函数 86__eol__5.2.3 第一个并行程序 87__eol__5.2.4 示例:stencil计算优化 92__eol__5.3 神威SIMD 96__eol__5.3.1 SIMD简介 96__eol__5.3.2 SIMD示例 100__eol__习题 101__eol__第6章 面向DCU架构的程序设计与优化 102__eol__6.1 曙光超算及编程环境概述 102__eol__6.1.1 曙光超算简介 102__eol__6.1.2 曙光超算节点架构 102__eol__6.1.3 ROCm/DTK编程环境 111__eol__6.2 HIP编程方法 112__eol__6.2.1 HIP与CUDA 112__eol__6.2.2 曙光DCU编程模型 113__eol__6.2.3 HIP编程 114__eol__6.3 利用LDS进行数据共享 127__eol__6.3.1 LDS概念 127__eol__6.3.2 LDS使用实例 129__eol__6.4 线程间通信 134__eol__6.4.1 Block级线程通信 134__eol__6.4.2 wavefront级线程通信 135__eol__6.5 reduce优化 138__eol__习题 148__eol__第7章 异构混合架构上的算法设计 149__eol__7.1 DCU上的前缀和 149__eol__7.1.1 Prefix Sum简介 149__eol__7.1.2 并行难点 150__eol__7.1.3 wavefront Scan算法 152__eol__7.1.4 Block Scan算法 154__eol__7.1.5 全局Scan算法 155__eol__7.1.6 更高效的Scan算法 157__eol__7.2 通用矩阵乘 157__eol__7.2.1 GEMM简介 157__eol__7.2.2 并行难点 158__eol__7.2.3 面向DCU的GEMM优化 158__eol__7.2.4 BENCHMARK 163__eol__7.3 DCU上的稀疏矩阵向量乘 164__eol__7.3.1 概述 164__eol__7.3.2 稀疏矩阵CSR存储格式 164__eol__7.3.3 并行难点 164__eol__7.3.4 高效SpMV算法实现 166__eol__习题 170__eol__第8章 异构混合架构常用算法库 172__eol__8.1 算法库介绍 172__eol__8.1.1 常见算法库层次 172__eol__8.1.2 国内外典型超算上的算法库 172__eol__8.2 稠密矩阵计算库:rocBLAS、cuBLAS、swBLAS 173__eol__8.2.1 BLAS接口介绍 173__eol__8.2.2 rocBLAS 177__eol__8.2.3 cuBLAS 181__eol__8.3 稀疏矩阵计算库:rocSPARSE、cuSPARSE、swSPARSE 182__eol__8.3.1 常用的稀疏矩阵的存储格式 182__eol__8.3.2 rocSPARSE 185__eol__8.3.3 cuSPARSE 190__eol__8.3.4 swSPARSE 192__eol__8.4 LAPACK线性代数计算库:特征值、LU 195__eol__8.4.1 LAPACK介绍 195__eol__8.4.2 rocSOLVER 196__eol__8.4.3 cuSOLVER 199__eol__8.5 线性方程组求解 201__eol__8.5.1 常用的求解算法 201__eol__8.5.2 PETSc的层次架构 202__eol__习题 209__eol__第9章 异构混合架构上并行应用程序开发示例 210__eol__9.1 MISA-MD分子动力学模拟程序异构优化 210__eol__9.1.1 分子动力学模拟概述 210__eol__9.1.2 面向DCU的MD优化的挑战性及优化思路 211__eol__9.1.3 主机-设备间通信及其优化 211__eol__9.1.4 并行计算策略 214__eol__9.1.5 其他访存优化技术 215__eol__9.2 SUMMER-CD 216__eol__9.2.1 软件介绍 216__eol__9.2.2 物理模型 216__eol__9.2.3 三层并行模型 218__eol__9.2.4 自适应异构数据传输 221__eol__9.2.5 基于Stream的计算通信重叠 223__eol__9.3 有限体积法求解圣维南方程组在神威·太湖之光上的优化 223__eol__9.3.1 物理模型简介 223__eol__9.3.2 使用Athread线程库加速 224__eol__9.3.3 SIMD 226__eol__9.3.4 双缓冲机制 226__eol__9.3.5 优化效果 229