搜索
高级检索
高级搜索
书       名 :
著       者 :
出  版  社 :
I  S  B  N:
出版时间 :
无库存
高性能计算机体系结构
0.00     定价 ¥ 59.00
泸西县图书馆
此书还可采购1本,持证读者免费借回家
  • ISBN:
    9787030733573
  • 作      者:
    吴迪,等
  • 出 版 社 :
    科学出版社
  • 出版日期:
    2023-03-01
收藏
畅销推荐
精彩书摘
第1章高性能计算机概述
  随着时代进步,计算科学已成为与理论科学和实验科学并驾齐驱的现代科学方法,大规模科学计算的能力已经成为当前解决大量科学与工程问题的必备能力,是一种推动现代科学发展的重要手段。对于理论模型过于复杂甚至模型难以建立、开展真实实验困难,或者实验费用过于昂贵的问题,计算已成为求解的唯一手段。其中,高性能计算(High-Performance Computing,HPC)是一种利用高性能计算机或计算机集群的能力来求解需要大量计算的复杂科学和工程问题的技术。
  1.1基本概念
  在本节中,首先介绍一些和高性能计算机相关的基本概念,如计算机性能、高性能计算机、并行计算等。
  1.1.1计算机性能
  对于一个计算机系统,其性能*本质的定义是“完成一个任务所需要的时间”。一般来说,在一个计算机系统上完成一个任务所需要的时间,通常可以由任务完成需要执行的指令数、每条指令执行所需要的时钟周期以及每个时钟周期的时间长度等三个量的乘积来计算得到。
  为了简化对于不同计算机的横向比较,一个常用的计算机性能评价指标是每秒百万条指令(Million Instructions Per Second,MIPS)。通过提高处理器主频(即时钟频率)和每个时钟周期执行的指令数,可以快速提高某台计算机的MIPS指标。但是MIPS指标忽略了不同指令系统之间的差异,有的指令系统比较复杂,有的指令系统比较简单,执行每条指令所需要的时钟周期也不尽相同,因此MIPS指标不能恰当反映具有不同指令系统的计算机之间的性能差异。
  由于MIPS指标的缺陷,来自美国劳伦斯利弗莫尔国家实验室的弗兰克 H 麦克马洪(Frank H.McMahon)提出了更通用的计算机性能评价指标,即每秒浮点运算次数(Floating-Point Operations Per Second,FLOPS)。这里,浮点(Floating-Point)指带有小数的数值类型,浮点运算指小数的四则运算(加减乘除)。由于FLOPS评价的是计算机每秒产生的浮点运算结果数,而不是执行的具体指令数,因此可以更加公平地对不同体系结构、不同指令系统的计算机进行比较。
  浮点数的表示一般遵循ANSI/IEEEStd754-1985定义的标准格式,使用可浮动的小数点定义不同长度的二进制数字。与定点数不同,基于同样长度的二进制数字,浮点数能够表达更大的数值范围。然而,虽然表达的数值范围扩大了,但浮点数的表达精度有限,难以精确表达所有实数,只能近似表达不同精度。
  按照精度的不同,浮点数可以划分为双精度浮点数、单精度浮点数、半精度浮点数,如图1-1所示,其中,双精度浮点数(FP64)使用64位(即8字节)表示,包括1位符号位、11位指数位、52位尾数位;单精度浮点数(FP32)使用32位(即4字节)表示,包括1位符号位、8位指数位和23位尾数位。英伟达(NVIDIA)公司在2002年又提出了半精度浮点数(FP16),其共使用16位(即2字节)表示,包括1位符号位、5位指数位和10位尾数位。
  浮点数的位数越多,精度就越高,从而可以在更大范围内表示数值的变化,实现更精确的计算。高性能计算领域应用的计算精度要求非常高,通常采用双精度浮点数进行数值表示。而对于多媒体或图像处理等应用,一般采用单精度浮点数进行数值表示与计算。对于精度要求更低的深度学习等人工智能应用,采用半精度浮点数也可以满足要求。
  LINPACK是目前测试高性能计算机系统浮点运算性能*常用的基准评测程序之一。LINPACK通过采用高斯消元法求解稠密线性代数方程组,以此来评测高性能计算机系统的浮点运算性能,主要评测计算机系统的双精度浮点运算性能,评测结果以FLOPS为单位来表示。
  为了方便表示,基于FLOPS,延伸出来一系列扩展指标,包括:
  (1)每秒百万次浮点运算(MegaFloating-Point Operations Per Second,MFLOPS,megaFLOPS,MFlop/s);
  (2)每秒十亿次浮点运算(GigaFloating-Point Operations Per Second,GFLOPS,gigaFLOPS,GFlop/s);
  (3)每秒万亿次浮点运算(TeraFloating-Point Operations Per Second,TFLOPS,teraFLOPS,TFlop/s);
  (4)每秒千万亿次浮点运算(PetaFloating-Point Operations Per Second,PFLOPS,petaFLOPS,PFlop/s);
  (5)每秒百亿亿次浮点运算(Exa Floating-Point Operations Per Second,EFLOPS,exaFLOPS,EFlop/s);
  除了计算性能,可靠性、利用率、能耗、I/O性能、易用性、可编程性等也是重要的系统评价指标。在第2章中,将详细介绍评测高性能计算机的各种类型的基准评测程序。
  1.1.2高性能计算机的定义
  髙性能计算机(又称为超级计算机或超算)可以帮助人类解决本体的智力、体力和意志等难以解决的难题。在过去的40年中,高性能计算机帮助人类在科学计算方面向更微观的世界不断深入,向更宏观的世界拓展,向更极端的条件探索发展。高性能计算机帮助人类更好地了解大自然的奥妙,极大地解放了人类的生活,有效地助力了人类的发展。
  高性能计算机有一个非常明显的特点,就是时代性。每一时代有每一时代的高性能计算机,它是那个时代性能*高的系统,例如,对于40年以前的高性能计算机,它的性能甚至都比不上现在的智能手机,而20年以前的高性能计算机的性能可能只与现今的笔记本电脑性能类似,其时代特性非常鲜明。高性能计算机不仅仅服务用户,作为一种战略前沿性技术,它还为国家的战略目标服务,是国家创新体系中不可或缺的重要部分。
  高性能计算机运算具备以下优势与特征:运算速度超级快,存储容量超级大,计算系统超级可靠,在处理大量数据以及执行复杂计算任务时超级高效。例如,在科学计算领域,问题的求解涉及大量浮点运算,因此高性能计算机的运算速度常用每秒浮点运算次数(FLOPS)来评价,即该计算机每秒所执行的浮点运算次数。目前世界上*先进的高性能计算机是“富岳”(Fugaku),它是由日本理化学研宄所和制造商富士通株式会社共同推进开发的。该计算机共有7630848核,峰值性能可达到537212TFLOPS。如果地球上每个人1s做一次运算,那么“富岳”髙性能计算机1s的计算量相当于全世界所有人不眠不休两年的运算量。另外,高性能计算机通常都具有非常大的存储能力,例如,我国自主研发的“天河二号”高性能计算机总内存(又称主存)容量约为3.4PB,相当于超过30000台*先进的个人计算机的内存容量(128GB)相加的结果。此外,它的全局存储容量约19PB,接近20000个1TB硬盘的存储容量之和。
  在高性能计算机的发展过程中,高性能计算机的应用范围已扩展至更广泛的领域,为国民经济建设、科学技术进步和人类的社会发展贡献力量,作为创新型国家的一种重大基础设施,高性能计算机能为解决挑战性问题提供重大支撑平台,助力并支撑着产业创新发展,为信息化建设提供了有力的资源保障。
  自从1964年第一台真正意义上的高性能计算机CDC6600诞生以来,高性能计算机的性能飞速提升。1997年,英特尔(Intel)公司的ASCIRed超级计算机成为世界上第一台运算速度超过1TFLOPS(每秒万亿次浮点运算)的超级计算机,是12年前发布的Cray-2超级计算机性能的800倍。2008年,IBM公司的Roadrunner超级计算机成为世界上第一台运算速度超过1PFLOPS(每秒千万亿次浮点运算)的超级计算机,其速度是ASCIRed的约1000倍。现今*快的超级计算机已经超越E级(EFLOPS,每秒百亿亿次浮点运算)。美国花费6亿美元研发的Frontier超级计算机的设计计算性能为1.5EFLOPS,成为美国首台E级超级计算机。2022年5月,Rxmtier获得超级计算机运算速度全球排名第一。据LINPACK基准评测,Frontier计算集群达到了1.1EFLOPS的实测峰值性能。
  整体而言,近30年高性能计算机的性能提升基本符合千倍定律,即每十年性能大约提升1000倍。从TOP500排行榜(图1-2)中高性能计算机的性能提升曲线可以清楚地观察到这一发展趋势。
  1.1.3并行计算
  1965年4月,英特尔公司的创始人之一戈登 摩尔(Gordon Moore)提出了著名的摩尔定律(Moore’sLaw),预言半导体芯片上集成的晶体管和电阻数目将每年增加一倍。1975年,戈登 摩尔依据实际情况,对摩尔定律进行了修正,将定律中“每年增加一倍”的描述更改为“每两年增加一倍”。随着时间的推移,目前主流的版本是集成电路上可容纳的晶体管数目,约每隔18个月便增加一倍。从20世纪70年代开始,到20世纪末,整个半导体行业的发展基本符合摩尔定律的预言,随着制程技术的进步,集成电路技术每隔18个月推进一代。
  在2004年以前,通过提高晶体管集成度、提升时钟频率、应用指令级并行等方法来提升单核处理器性能是微处理器发展的主流。例如,早期计算机的中央处理器(CPU)的时钟频率只有1MHz,而后期的普通个人计算机处理器的时钟频率都能达到2GHz甚至更高,这比早期计算机的处理器时钟频率快了超过2000倍。但是进入21世纪,半导体工艺升级的速度明显放缓,从之前的1~2年升级一代放慢到3~5年升级一代,而且工艺优化对于提升芯片性能的可能性也在大幅降低。同时,芯片设计面临“功耗墙”问题,提高芯片的电压和主频,将会导致功耗随着主频的提高超线性增长。应用指令级并行也会导致芯片的功率密度(即每单位管芯面积消耗的功率)快速上升,继续提升功率密度会使得芯片的温度达到火箭喷口甚至太阳表面的温度。
  在2004年,由于无法解决散热和功耗问题,英特尔公司宣布取消4GHz版本的PentiumIV处理器的开发,这也标志着单核处理器时代的结束,2005年之后,多核处理器的研发成为主流。通过使用多核处理器,计算机的性能不再受限于单个处理器核的性能,因此即使单处理器核的时钟频率无法再提高,也能通过添加处理器的核数来继续提高计算机性能。正因如此,多核并行的解决方案成为主流,现在无论个人计算机还是智能手机,都普遍采用了多核处理器。
  并行计算通常是指把一个大规模的计算问题划分为若干规模较小的部分,然后可以在多个互连的处理器上同时进行求解的计算模式。并行计算存在多种不同的表现形态,主要包括位级并行、指令级并行、数据级并行、任务级并行等。早期的高性能计算机很多是采用向量处理器来提高性能的,属于数据级并行的一种;20世纪80年代初期,业界转向构建大规模并行计算系统,将大量普通处理器进行互连来提供并行计算能力,提供任务级并行。
  图1-3给出了一个示例来表达任务级并行和数据级并行的区别。假设一个数据集有15个元素,需要进行3个步骤的处理,分别对应于任务1、任务2和任务3。对于任务级并行,可以把所有15个元素分发给3个执行节点,各个节点分别并行执行任务1、任务2和任务3之后把执行结果进行汇总。对于数据级并行,可以把数据集切分为三份,每份数据包含5个元素,然后把每份数据分发给一个节点执行处理任务,这样可以并行处理不同数据,每个节点顺序执行完任务1、任务2和任务3后,再对结果进行汇总。
  并行计算虽然很早就在高性能计算领域得到应用,但是在“功耗墙”问题导致CPU时钟频率无法进一步提升后,获得了更为广泛的关注和重视。并行计算(尤其多核并行计算)已经成为目前的主流计算机体系结构,也是通往超级计算的唯一途径。在图1-4中可以看出
展开
目录
目录
前言 
第1章 高性能计算机概述 1 
1.1 基本概念 1 
1.1.1 计算机性能 1 
1.1.2 高性能计算机的定义 3 
1.1.3 并行计算 4 
1.2 典型高性能计算机的结构剖析 6 
1.3 高性能计算机的性能评价 8 
1.3.1 峰值性能 8 
1.3.2 加速比和效率 9 
1.3.3 Amdahl定律 9 
1.3.4 Gustafson定律 12 
1.3.5 可扩展性 13 
1.4 高性能计算机的应用领域 14 
1.4.1 尺度超大类问题 14 
1.4.2 尺度超小类问题 15 
1.4.3 时变超快类问题 15 
1.4.4 时变超慢类问题 15 
1.4.5 过程超危险类问题 15 
1.4.6 过程超昂贵类问题 16 
1.4.7 新兴领域应用问题 16 
1.5 高性能计算机的演进和发展趋势 17 
1.5.1 高性能计算机的发展历史 17 
1.5.2 国产高性能计算机的发展历程 22 
1.5.3 高性能计算机的未来发展趋势 26 
1.6 本章小结 26 
课后习题 27 
第2章 基准评测集 29 
2.1 基准评测介绍 29 
2.2 计算性能评测集 30 
2.2.1 LINPACK 30 
2.2.2 HPCG 33 
2.2.3 Graph500 35
2.3 I/O性能评测集 38 
2.3.1 MDTest 38 
2.3.2 IOR 39 
2.3.3 IO500 39 
2.4 网络性能评测集.40 
2.4.1 IMB 40 
2.4.2 OSU Benchmark 41 
2.5 能耗评测集 42 
2.6 应用评测集 43 
2.6.1 Miniapplication 43 
2.6.2 戈登 贝尔奖 44 
2.7 本章小结 44 
课后习题 45 
第3章 高性能计算机的体系结构分类 46 
3.1 Flynn分类法 46 
3.1.1 SISD 47 
3.1.2 SIMD 47 
3.1.3 MISD 49 
3.1.4 MIMD 50 
3.1.5 SIMT 50 
3.1.6 计算机体系结构分类图谱 51 
3.2 共享内存系统 52 
3.2.1 集中式共享内存系统 52 
3.2.2 分布式共享内存系统 54 
3.3 分布式内存系统 55 
3.3.1 大规模并行处理系统 55 
3.3.2 工作站集群系统 56 
3.4 高性能计算机体系结构中的重要技术 58 
3.4.1 缓存一致性 58 
3.4.2 内存一致性 60 
3.4.3 同步 61 
3.4.4 互连网络 61 
3.5 非冯 诺依曼体系结构计算机 62 
3.5.1 冯 诺依曼体系结构的回顾 62 
3.5.2 非冯 诺依曼体系结构简介 63 
3.6 本章小结 64 
课后习题 65
第4章 高性能处理器的并行计算技术 66 
4.1 指令级并行 66 
4.1.1 流水线技术 66 
4.1.2 指令相关性 70 
4.1.3 流水线冒险 71 
4.1.4 处理冒险的技术 72 
4.1.5 精准异常的处理 73 
4.1.6 分支预测 73 
4.1.7 ILP增强技术 74 
4.2 线程级并行 76 
4.2.1 粗粒度多线程并行 77 
4.2.2 细粒度多线程并行 78 
4.2.3 同步多线程并行 79 
4.3 数据级并行 79 
4.3.1 SIMD指令集扩展 80 
4.3.2 图形处理器 84 
4.4 本章小结 87 
课后习题.87 
第5章 高性能计算机的存储层次 89 
5.1 存储层次结构 89 
5.2 缓存一致性 90 
5.2.1 基于侦听的缓存一致性协议 92 
5.2.2 基于目录的缓存一致性协议 95 
5.2.3 一致性的伪共享现象.97 
5.3 内存一致性问题.99 
5.3.1 顺序一致性 100 
5.3.2 松弛一致性 101 
5.4 内存屏障方法104 
5.4.1 编译器内存同步 104 
5.4.2 CPU内存同步 104 
5.4.3 无锁同步 106 
5.5 本章小结 107 
课后习题 107 
第6章 高性能计算机的互连网络 108 
6.1 基本定义和评价指标 108 
6.2 拓扑结构 110 
6.2.1 静态网络 111 
6.2.2 动态网络 113
6.3 流控机制 117 
6.3.1 基于消息的流量控制 118 
6.3.2 基于包的流量控制 119 
6.3.3 基于片的流量控制 120 
6.3.4 基于信用量的流量控制 121 
6.4 路由算法 122 
6.4.1 路由死锁问题 122 
6.4.2 路由算法的分类 123 
6.5 InfiniBand高性能互连网络 125 
6.5.1 InfiniBand层次结构 126 
6.5.2 InfiniBand网络架构 128 
6.6 RDMA协议 129 
6.6.1 常见的RDMA技术 130 
6.6.2 RDMA与传统协议对比 131 
6.7 本章小结 132 
课后习题 132 
第7章 异构计算体系结构 133 
7.1 异构计算的基本概念 133 
7.2 CPU+GPU异构计算 135 
7.2.1 CPU与GPU的对比 135 
7.2.2 GPU的架构 137 
7.2.3 CUDA编程模型 139 
7.2.4 CUDA内存模型 143 
7.2.5 CUDA执行模型 144 
7.3 CPU+FPGA异构计算 146 
7.3.1 FPGA的基本架构 146 
7.3.2 OpenCL编程模型 147 
7.3.3 OpenCL内存模型 149 
7.3.4 OpenCL执行模型 150 
7.4 本章小结 152 
课后习题 152 
第8章 领域专用体系结构 153 
8.1 面向深度神经网络的领域专用体系结构 153 
8.1.1 深度神经网络简介 153 
8.1.2 张量处理单元 154 
8.1.3 神经网络处理单元 160 
8.1.4 神经网络领域专用体系结构未来展望 162 
8.2 面向类脑计算的领域专用体系结构 163
8.2.1 类脑计算简介 164 
8.2.2 清华大学“天机”类脑体系结构 166 
8.2.3 其他类脑体系结构 167 
8.3 面向图计算的领域专用体系结构 168 
8.3.1 图计算 168 
8.3.2 面向图计算的领域专用体系结构分类 170 
8.4 本章小结 172 
课后习题 173 
参考文献 174
展开
加入书架成功!
收藏图书成功!
我知道了(3)
发表书评
读者登录

温馨提示:请使用泸西县图书馆的读者帐号和密码进行登录

点击获取验证码
登录