|
內容簡介: |
本书面向国产E级超算的体系结构和高性能计算领域,关注近年来出现的新超算硬件和新软件技术(如神威E级超算编程模式、DCU编程模式)。本书涵盖神威、曙光等超算的硬件架构与编程方法,深度结合国产超算体系结构特点,以实例的形式探讨异构超算上的高性能算法设计、优化技术及高性能软件的开发和优化方法。本书可作为高等院校计算机科学与技术、软件工程等专业本科生或研究生的教材,使其在掌握通用计算机程序设计的基础上,进一步提升在该领域的理论知识水平和程序优化实践技能,也可作为从事高性能计算和体系结构研究的科研工作者与工程技术人员的参考资料,同时也能为关注高性能计算与超算技术发展的读者提供有益参考。
|
關於作者: |
储根深,工学博士,长期从事面向国产超算异构混合架构的基础数学库、大规模并行算法、高性能科学计算软件与性能优化研究。主导开发了MISA-MD、MISA-AKMC等大型材料计算软件,在神威超算实现万亿粒子规模的MD模拟世界纪录。核心参与国家重点研发、国家自然科学基金等项目近10项。发表SCI/EI高水平论文10余篇、申请发明专利10余项。
|
目錄:
|
第1章 绪论11.1 高性能计算应用需求和意义11.2 混合架构超算发展趋势21.3 如何进行异构混合架构上的程序设计21.4 本书的内容和安排3第2章 异构混合架构概述52.1 国际国内超算现状52.1.1 超算发展历程62.1.2 超算发展现状82.1.3 我国超算发展现状122.2 典型的混合架构计算机132.2.1 CPU+GPU架构:以Frontier、Summit、Aurora为代表132.2.2 ARM架构:日本富岳162.2.3 CPU+DCU:曙光超算172.2.4 神威主从核架构:新一代神威超算182.2.5 新一代天河超算192.3 混合架构程序设计语言与框架概述222.3.1 OpenMP222.3.2 MPI232.3.3 CUDA/HIP242.3.4 OpenACC252.3.5 Athread262.3.6 OpenCL272.3.7 oneAPI28习题29参考文献30第3章 异构混合架构性能分析理论313.1 并行程序的时间开销313.2 相对性能313.3 绝对性能363.4 性能瓶颈373.4.1 计算密度373.4.2 访存密集与计算密集383.4.3 roofline性能模型383.4.4 roofline分析示例:SpMV39习题41参考文献42第4章 CPU高性能程序设计434.1 内存模型与OpenMP、MPI并行编程方法434.2 OpenMP并行编程简介444.2.1 OpenMP的Hello World454.2.2 编译制导指令474.2.3 运行时库函数494.2.4 环境变量494.2.5 OpenMP offload494.3 MPI并行编程简介504.3.1 MPI基本函数504.3.2 MPI通信模式554.4 SIMD向量化604.4.1 CPU向量化指令集发展604.4.2 向量化编程实践614.5 性能分析工具654.5.1 perf工具654.5.2 gprof工具694.5.3 IPM工具704.5.4 Score-P工具73习题76第5章 神威异构众核程序设计775.1 神威超算及编程环境概述775.1.1 神威超算的背景及历史775.1.2 神威·太湖之光超算架构785.1.3 新一代神威超算架构805.1.4 神威编程环境815.1.5 访存层次845.2 神威众核编程855.2.1 众核程序结构855.2.2 从核函数865.2.3 第一个并行程序875.2.4 示例:stencil计算优化925.3 神威SIMD965.3.1 SIMD简介965.3.2 SIMD示例100习题101第6章 面向DCU架构的程序设计与优化1026.1 曙光超算及编程环境概述1026.1.1 曙光超算简介1026.1.2 曙光超算节点架构1026.1.3 ROCm/DTK编程环境1116.2 HIP编程方法1126.2.1 HIP与CUDA1126.2.2 曙光DCU编程模型1136.2.3 HIP编程1146.3 利用LDS进行数据共享1276.3.1 LDS概念1276.3.2 LDS使用实例1296.4 线程间通信1346.4.1 Block级线程通信1346.4.2 wavefront级线程通信1356.5 reduce优化138习题148第7章 异构混合架构上的算法设计1497.1 DCU上的前缀和1497.1.1 Prefix Sum简介1497.1.2 并行难点1507.1.3 wavefront Scan算法1527.1.4 Block Scan算法1547.1.5 全局Scan算法1557.1.6 更高效的Scan算法1577.2 通用矩阵乘1577.2.1 GEMM简介1577.2.2 并行难点1587.2.3 面向DCU的GEMM优化1587.2.4 BENCHMARK1637.3 DCU上的稀疏矩阵向量乘1647.3.1 概述1647.3.2 稀疏矩阵CSR存储格式1647.3.3 并行难点1647.3.4 高效SpMV算法实现166习题170第8章 异构混合架构常用算法库1728.1 算法库介绍1728.1.1 常见算法库层次1728.1.2 国内外典型超算上的算法库1728.2 稠密矩阵计算库:rocBLAS、cuBLAS、swBLAS1738.2.1 BLAS接口介绍1738.2.2 rocBLAS1778.2.3 cuBLAS1818.3 稀疏矩阵计算库:rocSPARSE、cuSPARSE、swSPARSE1828.3.1 常用的稀疏矩阵的存储格式1828.3.2 rocSPARSE1858.3.3 cuSPARSE1908.3.4 swSPARSE1928.4 LAPACK线性代数计算库:特征值、LU1958.4.1 LAPACK介绍1958.4.2 rocSOLVER1968.4.3 cuSOLVER1998.5 线性方程组求解2018.5.1 常用的求解算法2018.5.2 PETSc的层次架构202习题209第9章 异构混合架构上并行应用程序开发示例2109.1 MISA-MD分子动力学模拟程序异构优化2109.1.1 分子动力学模拟概述2109.1.2 面向DCU的MD优化的挑战性及优化思路2119.1.3 主机-设备间通信及其优化2119.1.4 并行计算策略2149.1.5 其他访存优化技术2159.2 SUMMER-CD2169.2.1 软件介绍2169.2.2 物理模型2169.2.3 三层并行模型2189.2.4 自适应异构数据传输2219.2.5 基于Stream的计算通信重叠2239.3 有限体积法求解圣维南方程组在神威·太湖之光上的优化2239.3.1 物理模型简介2239.3.2 使用Athread线程库加速2249.3.3 SIMD2269.3.4 双缓冲机制2269.3.5 优化效果229
|
|