【笔记】《高性能计算:现代系统与应用实践》Chapter 02

笔记和摘录

2.1 HPC架构定义

  • HPC架构有两层含义:一是指超算组件的组织形式和功能性,二是指超算提供给应用程序的逻辑指令集架构(ISA)。

HPC architecture is the organization and functionality of its constituent components and the logical instruction set architecture (ISA) it presents to computer programs that run on supercomputers. —2.1

  • HPC架构赋能的技术的作用:最小化求解时间,最大化操作吞吐量,完成计算密集型任务和数据密集型(近年开始)任务。

  • 计算密集型和数据密集型任务的区别

计算密集型(numerically-intensive): 这种类型的任务主要涉及复杂的数学和数值计算,如模拟物理现象、进行科学计算、工程分析等。这些任务通常要求强大的CPU或GPU来处理大量的浮点运算。计算密集型任务的特点是它们需要大量的处理能力来执行计算,而数据量可能相对较小,或者数据可以被高效地组织和管理以优化计算性能。
数据密集型(data-intensive): 数据密集型任务则侧重于处理和分析大量数据。这些任务可能包括数据挖掘、大数据分析、机器学习中的数据处理等。数据密集型任务的特点是对数据存储、检索和传输的要求非常高,而计算本身可能相对简单或可并行化。这些任务通常需要高效的数据管理系统和存储解决方案来快速访问和处理数据。
总结:计算密集型任务强调的是计算性能,而数据密集型任务强调的是数据访问和处理的速度。

  • HPC还需关注的4个非性能因素:可靠性、能耗、用户使用成本、用户编程可用性。

  • 超算与商用服务器的区别:超算在解决真实世界问题(仿真、模拟、优化等)时,可以提供巨大的性能提升。

Thus the effect that defines a supercomputer and differentiates it from commercial (or even consumer) servers is that it delivers greatly enhanced performance to solve real-world problems.—2.1

2.2 HPC架构的关键特性(6个)

决定系统性能的3个关键属性:组件的速度、并行性(同时执行多操作的组件数量)、组件的使用效率。
三个属性和性能的关系公式
P = e × S × a ( R ) × μ ( E ) P=e \times S \times a(R) \times \mu(E) P=e×S×a(R)×μ(E)

P:平均性能
S:规模,可以同时操作的单元数
a:可用性,为可靠性R的函数
μ \mu μ:处理器核心的指令休止频率(instruction retirement rate),通常用时钟频率代替,为功率E的函数
e:效率

速度

系统性能与组件速度直接相关,组件速度由三个因素决定。

  • 指令处理速度
    时钟频率,或指令休止频率(the rate at which each retires instructions,每条指令完成时会出现一个休止步骤,这个步骤出现的频率体现了指令完成的频率)
  • 存储读取速度
    存储周期(Memory cycle),通过DRAM和SRAM混合提高该速率。
  • 数据传输速度
    带宽:单位时间内两点可以移动多少信息
    延迟:两点之间移动数据所需时间
并行性

并行结构和并行行为控制,都决定了HPC架构的并行性,所以数据通路和控制通路都是HPC架构利用并行性时要考虑的因素。

效率

定义:系统利用率,即关键部件使用时间百分比。
HPC通常选择浮点性能进行度量,将效率( e f l o p s e_{flops} eflops)定义为持续浮点运算性能( P s u s t a i n e d P_{sustained} Psustained)与理论峰值浮点运算性能( P p e a k P_{peak} Ppeak)的比值。
e f l o p s = P s u s t a i n e d P p e a k e_{flops}=\frac{P_{sustained}}{P_{peak}} eflops=PpeakPsustained
这种评价方式是浮点运算成本高昂时代的产物,目前数据移动或内存中访问数据的芯片空间、时间、能耗成本要远高于浮点数运算操作,但这种评价方式仍在使用。

功率

系统运行的功耗除了功能器件的功耗,还包含热控制(气冷、液冷、主动热控)的功耗。

可靠性
故障类型特点检查点/重启策略
硬故障(“Hard” fault)硬件某部分永久性失效重新配置系统,重启前处理硬件
软故障(“Soft” fault)部件出现了间歇性失效,但大部分时间能正常工作从检查点重启
软件错误(Software error)代码Bug导致重启前纠正代码

检查点/重启(checkpoint/restart):系统定期停止执行任务,并将所有程序状态进行存储(通常在辅存上),这种位置成为检查点。检查点之后出现错误时,从检查点处重启即可,不必从头重启整个程序。

可编程性
  • 不影响性能,但是对用户来说很重要。
  • 代码重用。尽量使用通用代码库,基于框架搭建应用程序,由框架调用已有库实现功能并完成数据传递。

2.3 并行架构家族-Flynn分类法(停滞)

Michael Flynn提出了一种分类法:根据数据流(Data)指令流(Instruction) 并行性的关系对并行架构分类。当今价值有限且已经停滞。
在这里插入图片描述

  • SISD:传统顺序(串行)处理器结构。
  • SIMD:异构微处理器和超算中的系统基础和更复杂控制结构的组成部分。
  • MIMD:最广泛使用的并行架构,具有诸多子类。
  • MISD:粗粒度流水线,共享多内存处理器。
  • SPMD:不属于Flynn分类法,但由其启发,是SIMD模型的一种实际变种,其中P代表Program。SPMD会向SIMD机器的所有处理单元发送粗粒度步骤的系统调用,而非一条一条地广播构成该步骤的指令。这种调用重量级任务而非轻量级指令的方式,分摊了控制系统的开销和其导致的延迟,并且使一些现代计算架构形式的操作成为可能,包括了GPU加速器。

2.4 Enabling Technology

  • HPC系统是设备技术带来的机遇产品。

HPC systems are products of opportunity enabled by device technologies.

  • 当前超算面对处理器速度增长停滞和芯片多核化两种趋势的策略:一是在时钟频率上限不再提高后,开始提高单个芯片上的核数;二是对处理单元PE结构的特殊配置,提高重要函数的执行速度。
  • 三种主要的技术类别:数字逻辑(实现二进制计算),存储器(SRAM、DRAM、硬盘、NVRAM),数据通信。

2.5 冯诺依曼顺序处理器

  • ALU:算术逻辑单元,执行运算功能。
  • 寄存器(Register),缓存(Cache),内存(Memory)均实现数据存储功能,但读取的速度不同,依次由块到慢。
  • 图中似乎并没有体现出冯诺依曼架构与早期计算机的显著不同点,即冯诺依曼架构将程序和数据以同一种形式进行存储,程序也是存储在内存中的一种数据,而非控制器的一部分。
    在这里插入图片描述

2.6 向量和流水线

符号定义

在这里插入图片描述

ts:流水段的运行时间
tv:控制流水段间切换产生的开销
ps:流水线段数,>1
nd:输入数据单元数
tm:不分段情况下,对单个数据单元的执行时间
tp:流水段切换时,数据移动的延时
ts和tv都是流水线有效操作的耗时,tp是由于数据移动导致的延迟

流水线性能增益

G = T m T p = t m × n d ( t v + t s ) × ( p s + n d ) G=\frac{T_m}{T_p}=\frac{t_m \times n_d}{(t_v+t_s)\times(p_s+n_d)} G=TpTm=(tv+ts)×(ps+nd)tm×nd

成功的流水线,满足的条件

  • 移动延时远小于对单个数据块的运算时间 t p ≪ t m t_p \ll t_m tptm
  • 流水线总的移动延时不可忽略,比单个数据块的运算时间长 ( p × t p ) > t m (p \times t_p) > t_m (p×tp)>tm
  • 数据块数远大于流水线段数 n d ≫ p n_d \gg p ndp
  • 控制切换的耗时远小于移动延时 t p ≫ t v t_p \gg t_v tptv

此时流水线的最佳性能增益为
lim ⁡ n d → ∞ G ≅ t m t p \lim_{n_d\to\infty}G \cong \frac{t_m}{t_p} ndlimGtptm

边界条件限制下的性能增益公式
  • 流水段内逻辑层数量实际无法减少到低于4~6个逻辑门,因此时间下限要增加额外的几个门延迟
  • t v ≥ t p t_v \ge t_p tvtp时,开销 t v t_v tv会对G进行二次限制
  • 最慢的流水段决定了整个流水线的时钟速率(木桶原理)
  • n d n_d nd p p p小的情况
    t v t_v tv的二次限制公式
    lim ⁡ p → ∞ G = t m t v , f o r   n d → ∞ \lim_{p\to\infty}G=\frac{t_m}{t_v},for\space n_d\to\infty plimG=tvtm,for nd

n d n_d nd非常小时,流水线的逻辑优势会消失,此时性能可能增益小于1。当 t v = 0 t_v=0 tv=0流水线优势的盈亏平衡点
n d ≥ p × t p t m − t p n_d \ge \frac{p\times t_p}{t_m-t_p} ndtmtpp×tp

向量处理架构和流水线的关系

向量处理架构(Vector-processing architecture)基于流水线技术实现细粒度并行,可以实现延迟隐藏、分摊控制开销。并通过较小的逻辑深度保持较高的时钟速率。参考Vector architecture - 知乎 (zhihu.com)

2.7 SIMD

处理元素(Processing Element )的组成
  • 内存块:每个PE占用系统总内存一部分,仅由该PE读写,故带宽很高。
  • ALU:对局部的内存块进行运算,序列控制器广播指令给局部寄存器,从而控制ALU进行操作
  • 局部寄存器:保持PE执行操作的当前数据值。对于加载/存储架构(load/store),寄存器是局部内存块的直接接口。局部寄存器可以作为其他位置(网络、外部IO)数据的缓冲区。
  • 序列控制器:接收系统指令序列流,解码指令并生成PE控制信号。
  • 指令接口:一个接到广播网络的端口,用于分发来自序列控制器的指令流。
  • 数据接口:一个接到系统数据网络的端口,用于PE内存块间的数据交换。
  • 外部IO接口:将各个PE与系统外部IO相关联的系统。
    在这里插入图片描述
阿姆达定律(Amdahl’s Law)
  • 含义:描述了混合并行和串行操作的系统中,最大加速比的计算方式。

  • 公式
    S = T 0 T A = T 0 ( 1 − f ) × T 0 + ( f g ) × T 0 = 1 1 − f + ( f g ) S=\frac{T_0}{T_A}=\frac{T_0}{(1-f) \times T_0 + (\frac{f}{g}) \times T_0}=\frac{1}{1-f+(\frac{f}{g})} S=TAT0=(1f)×T0+(gf)×T0T0=1f+(gf)1

  • 符号含义

    • S S S:系统加速比
    • T 0 T_0 T0:所有操作纯顺序执行的耗时
    • T F T_F TF:可并行操作部分执行的耗时
    • T A T_A TA:对可并行部分加速,其余部分串行的耗时
    • f = T F / T 0 f=T_F/T_0 f=TF/T0:并行操作占比
    • g g g:并行度,部件加速比
      在这里插入图片描述
      在这里插入图片描述
  • 理解

    • 当代码完全都可以通过并发度 g g g执行时,即 T F = T 0 , f = 1 T_F=T_0,f=1 TF=T0,f=1 S = g S=g S=g
    • 如果没有代码可以并发执行,即 f = 0 f=0 f=0,有 S = 1 S=1 S=1,没有任何加速收益
    • 即使 g g g很大,但如果 f = 0.5 f=0.5 f=0.5时, S S S也不会大于2

2.8 多处理器

三种主流配置:SMP、MPP、commodity clusters

Shared-Memory Multiprocessors-共享内存多处理器
  • 特点:所有处理器都可以直接(通过硬件)访问系统中的所有主存储器(A可以访问a,b,c…x),所以允许了系统中某处理器访问其他任何处理器已创建或待使用的数据(A可以访问B即将使用的b)。
    在这里插入图片描述

  • 缓存一致性(Cache coherence)确保Cache中数据的任何变化都会反映给所有其他具有该数据的Cache。其中一种方式是modified exclusive shared invalid (MESI) 协议,或称snooping cache。

  • UMA, Uniform memory access:所有处理器可以在相同时间访问任何内存块。

  • NUMA, Nonuniform memory access:所有处理器可以访问任何内存块,但不保证能同时访问。

Massively Parallel Processors-大规模并行处理器

在这里插入图片描述

  • MPP架构最容易将系统扩展达到规模和性能的极限。
  • 通常使用分布式内存。
  • 节点:处理器核心和局部存储组成的单元。
  • 消息传递通过系统区域网络(system area network)实现。
Commodity Clusters-商用集群
  • 定义:集群中的网络和计算节点都是商品,这些商品是提供给生产商以外的组织的。

a cluster in which both the network and the compute nodes are commercial products available for procurement and independent application by organizations (end users or separate vendors) other than the original equipment manufacturer – Jack Dongara

  • 比MPP效率更低,更适合进行高吞吐量计算,如较少依赖于通信的参数扫描型仿真。

2.9 异构计算机

  • 定义:包含两种及以上类型的计算核心、插槽、节点的计算系统。

Systems comprising two or more types of computer cores, sockets, and nodes are distinguished from homogeneous computing systems that have only one type, and are designated as heterogeneous systems.

  • 例:GPU通过I/O连接到系统节点;芯片设计过程中直接实现异构。
  • 现代计算机往往采用多种并行结构以实现并行性。

2.11 练习题

  1. 高速缓存(Cache)的目的。说出L1、L2和L3缓存的用途。
    高速缓存通过持有很少一部分数据,借助局部性的优势来实现快速内存的效果。
    L1缓存速度最快但存储量最小,读写速度约2~4个时钟周期。
    L2缓存比L1大,与CPU的距离比L1更远,读写速度约为10~20个时钟周期。
    L3缓存更大、更远、更慢,读写速度约为20~60个时钟周期。
  2. SRAM具有最高的半导体存储速度,在几个时钟周期数量级。需要的die面积最大,能耗最大。DRAM比SRAM存储密度更高,但速度更慢(在100~200个时钟周期的数量级)且需要频繁地(几十ms频率)刷新。NVRAM是非易失的、功耗更低的、数据存储密度最高。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值