书籍详情
面向大规模应用的高性能计算编程与优化
作者:文梅,柴俊,苏华友,董辛楠,张春元
出版社:科学出版社
出版时间:2015-11-01
ISBN:9787030462596
定价:¥58.00
购买这本书可以去
内容简介
随着信息技术的不断发展,应用对计算的需求不断增加,需要借助高性能计算系统来解决相关领域的问题。如何高效地利用高性能计算资源解决工程和科学问题成为急需解决的问题。《面向大规模应用的高性能计算编程与优化》源自于作者系列超级计算机进行大规模应用开发的经验和研究成果,对高性能计算相关的基础知识和优化关键技术进行系统的介绍。《面向大规模应用的高性能计算编程与优化》共9章,第1章绪论,主要介绍大规模应用对计算的需求,阐述编程方面的挑战;第2~5章介绍高性能计算的基础知识,重点介绍GPu和MIC编程及优化技术;第6~8章阐述作者基于天河一1A、天河2号超级计算机开发的三个典型应用案例,重点介绍大规模计算集群的优化技术;第9章介绍未来的高性能计算,E级计算的挑战以及一些新兴应用,并讨论未来高性能计算可能的发展方向。《面向大规模应用的高性能计算编程与优化》主要面向专门从事高性能计算的程序员和工程师以及使用大规模异构集群系统进行科学计算的科研人员,也可作为相关专业本科生和研究生的参考书。
作者简介
文梅,女,国防科学技术大学计算机学院研究员,硕士生导师。长期从事超高性能加速器体系结构、并行计算、媒体处理等研究。2011年在挪威Simula实验室担任客座科学家。近年来,主持及参与国家重大项目10余项,其中包括世界上64位流处理器FT64的研制、流处理系列国家自然科学基金项目(重点、面上、青年项目)、中挪合作项目等。目前研究兴趣包括深度学习加速器以及相关图像处理。在国际会议和期刊上以优秀作者/通信作者身份发表论文20余篇,总计发表论文100余篇,其中SCI8篇,EI17篇。完成学术专著3部。柴俊,男,工程师,2014年获得国防科学技术大学计算机学院博士学位,研究方向为并行编程、高性能科学计算、计算机系统结构。苏华友,男,助理研究员,2014年获得国防科学技术大学计算机学院博士学位。研究方向为GPGPU并行计算、媒体处理等。董辛楠,女,助理工程师,2014年获得国防科学技术大学计算机学院硕士学位。张春元,男,国防科学技术大学计算机学院教授,博士生导师,IEEE会员,享受国务院政府特殊津贴。长期从事计算机体系结构、并行计算等领域研究和教学工作。研究领域主要涉及新型计算机系统结构技术、高性能计算、嵌入式系统及应用技术、并行与分布处理技术、Web应用技术等。作为项目负责人和主要研究人员主持或参加的各类项目(包括国家自然科学基金、国家863高技术研究项目、国家973安全重大基础研究项目、国家重点型号项目和对外合作等)共计20多项。发表高水平科研论文
目录
序
前言
第1章 绪论
1.1 大规模应用对高性能计算的迫切需求
1.2 高性能计算硬件基础
1.2.1 多核通用处理器
1.2.2 众核加速器
1.2.3 加速器增强型异构系统
1.3 高性能计算编程挑战与研究现状
1.3.1 高性能计算编程挑战
1.3.2 高性能计算编程研究现状
参考文献
第2章 高性能计算并行基础
2.1 并行计算分类
2.1.1 数据并行
2.1.2 任务并行
2.2 并行计算的度量
2.2.1 性能
2.2.2 扩展性
2.3 并行程序测试集
2.3.1 Linpack
2.3.2 13类基准测试分类体系
2.3.3 其他测试集
参考文献
第3章 并行程序设计
3.1 共享存储计算机
3.1.1 共享存储体系结构
3.1.2 OpenMP编程
3.1.3 实例
3.2 分布式存储计算机
3.2.1 分布式存储体系结构
3.2.2 MPI消息传递机制
3.2.3 实例
3.3 大规模并行计算
3.3.1 混合编程模型
3.3.2 大规模系统节点问通信优化
参考文献
第4章 GPU并行计算
4.1 GPU体系结构
4.1.1 GPU的发展历程
4.1.2 GPU硬件体系结构
4.2 CUDA编程模型
4.2.1 程序结构
4.2.2 存储模型
4.3 性能优化
4.3.1 大规模线程并行
4.3.2 全局带宽的利用
4.3.3 SM片上资源优化
4.4 单节点多GPU编程
4.4.1 单线程多GPU编程
4.4.2 多线程多GPU编程
4.4.3 多GPU P2P直接通信模式
4.5 大规模CPU-GPU异构计算
参考文献
第5章 MIC并行计算
5.1 MIC体系结构
5.1.1 MIC体系结构概述
5.1.2 MIC计算核
5.1.3 MIC环形网络
5.1.4 MIC存储层次
5.2 MIC编程模式
5.2.1 offioad编程模式
5.2.2 native编程模式
5.2.3 底层编程接口
5.3 性能优化策略
5.3.1 并行优化
5.3.2 访存优化
5.3.3 通信优化
5.4 节点内多MIC并行计算
5.4.1 基于stencil计算的任务划分
5.4.2 基于pragma卸载模式的优化
5.4.3 基于系统级接口的卸载模式
5.4.4 基于MPI-OpenMP的对称模式
5.4.5 不同卸载模式的比较
5.5 大规模CPU-MIC并行计算
5.5.1 大规模CPU-MIC异构系统
5.5.2 基于MIC加速器的大规模异构系统的编程模型
5.5.3 基于MIC加速器的大规模异构系统的并行优化
5.6 本章小结
参考文献
第6章 面向贝叶斯进化分析的大规模异构混合计算
6.1 引言
6.2 背景
6.2.1 MrBayes概述
6.2.2 同时利用CPI_J和GPIJ的挑战
6.3 方法
6.3.1 OMC3算法
6.3.2 负载划分策略
6.4 结果和讨论
6.4.1 实验设置
6.4.2 单计算节点上的性能
6.4.3 验证负载划分策略
6.4.4 多节点扩展性
6.5 小结
参考文献
第7章 基于CPU-GPU异构系统的双岩沉降模拟
7.1 概述
7.2 数学模型和数值方法
7.3 并行实现设计
7.3.1 基于MPI的CPU-only实现
7.3.2 GPU-only实现
7.3.3 CPU-GPU混合实现
7.4 实验评估与分析
7.4.1 实验设置和结果
7.4.2 单GPU性能比较与分析
7.4.3 扩展性评测
7.4.4 时间分布
7.5 小结
参考文献
第8章 接近纳米级精度的钙动力模拟并行计算
8.1 引言
8.2 应用描述
8.2.1 数学模型
8.2.2 数值方法
8.3 目标体系结构
8.4 实现和优化
8.4.1 整体策略
8.4.2 单协处理器利用
8.4.3 单节点利用
8.4.4 多节点效率
8.5 性能研究
8.5.1 单协处理器性能
8.5.2 单节点性能
8.5.3 弱扩展性
8.5.4 强扩展性
8.6 模拟结果
8.7 小结
参考文献
第9章 未来的高性能计算
9.1 E级计算的挑战
9.2 Scale up与Scale out的比较
9.3 未来可能的发展方向
9.3.1 大规模机器学习
9.3.2 热点方向
参考文献
前言
第1章 绪论
1.1 大规模应用对高性能计算的迫切需求
1.2 高性能计算硬件基础
1.2.1 多核通用处理器
1.2.2 众核加速器
1.2.3 加速器增强型异构系统
1.3 高性能计算编程挑战与研究现状
1.3.1 高性能计算编程挑战
1.3.2 高性能计算编程研究现状
参考文献
第2章 高性能计算并行基础
2.1 并行计算分类
2.1.1 数据并行
2.1.2 任务并行
2.2 并行计算的度量
2.2.1 性能
2.2.2 扩展性
2.3 并行程序测试集
2.3.1 Linpack
2.3.2 13类基准测试分类体系
2.3.3 其他测试集
参考文献
第3章 并行程序设计
3.1 共享存储计算机
3.1.1 共享存储体系结构
3.1.2 OpenMP编程
3.1.3 实例
3.2 分布式存储计算机
3.2.1 分布式存储体系结构
3.2.2 MPI消息传递机制
3.2.3 实例
3.3 大规模并行计算
3.3.1 混合编程模型
3.3.2 大规模系统节点问通信优化
参考文献
第4章 GPU并行计算
4.1 GPU体系结构
4.1.1 GPU的发展历程
4.1.2 GPU硬件体系结构
4.2 CUDA编程模型
4.2.1 程序结构
4.2.2 存储模型
4.3 性能优化
4.3.1 大规模线程并行
4.3.2 全局带宽的利用
4.3.3 SM片上资源优化
4.4 单节点多GPU编程
4.4.1 单线程多GPU编程
4.4.2 多线程多GPU编程
4.4.3 多GPU P2P直接通信模式
4.5 大规模CPU-GPU异构计算
参考文献
第5章 MIC并行计算
5.1 MIC体系结构
5.1.1 MIC体系结构概述
5.1.2 MIC计算核
5.1.3 MIC环形网络
5.1.4 MIC存储层次
5.2 MIC编程模式
5.2.1 offioad编程模式
5.2.2 native编程模式
5.2.3 底层编程接口
5.3 性能优化策略
5.3.1 并行优化
5.3.2 访存优化
5.3.3 通信优化
5.4 节点内多MIC并行计算
5.4.1 基于stencil计算的任务划分
5.4.2 基于pragma卸载模式的优化
5.4.3 基于系统级接口的卸载模式
5.4.4 基于MPI-OpenMP的对称模式
5.4.5 不同卸载模式的比较
5.5 大规模CPU-MIC并行计算
5.5.1 大规模CPU-MIC异构系统
5.5.2 基于MIC加速器的大规模异构系统的编程模型
5.5.3 基于MIC加速器的大规模异构系统的并行优化
5.6 本章小结
参考文献
第6章 面向贝叶斯进化分析的大规模异构混合计算
6.1 引言
6.2 背景
6.2.1 MrBayes概述
6.2.2 同时利用CPI_J和GPIJ的挑战
6.3 方法
6.3.1 OMC3算法
6.3.2 负载划分策略
6.4 结果和讨论
6.4.1 实验设置
6.4.2 单计算节点上的性能
6.4.3 验证负载划分策略
6.4.4 多节点扩展性
6.5 小结
参考文献
第7章 基于CPU-GPU异构系统的双岩沉降模拟
7.1 概述
7.2 数学模型和数值方法
7.3 并行实现设计
7.3.1 基于MPI的CPU-only实现
7.3.2 GPU-only实现
7.3.3 CPU-GPU混合实现
7.4 实验评估与分析
7.4.1 实验设置和结果
7.4.2 单GPU性能比较与分析
7.4.3 扩展性评测
7.4.4 时间分布
7.5 小结
参考文献
第8章 接近纳米级精度的钙动力模拟并行计算
8.1 引言
8.2 应用描述
8.2.1 数学模型
8.2.2 数值方法
8.3 目标体系结构
8.4 实现和优化
8.4.1 整体策略
8.4.2 单协处理器利用
8.4.3 单节点利用
8.4.4 多节点效率
8.5 性能研究
8.5.1 单协处理器性能
8.5.2 单节点性能
8.5.3 弱扩展性
8.5.4 强扩展性
8.6 模拟结果
8.7 小结
参考文献
第9章 未来的高性能计算
9.1 E级计算的挑战
9.2 Scale up与Scale out的比较
9.3 未来可能的发展方向
9.3.1 大规模机器学习
9.3.2 热点方向
参考文献
猜您喜欢