▶ 高性能计算机发展历程
真空管电子计算机,向量机(Vector Machine),并行向量处理机(Parallel Vector Processors,PVP),分布式并行机(Parallel Processors,PP),对称多处理机(Symmetric Multiprocessors,SMP),分布式共享并行机(Distributed Share Memory,DSM),大规模并行机(Massively Parallel Processors, MPP),大规模加速并行机(Massively Parallel Processors with Accelerators, MPPA)
▶ 计算机体系架构
● 指令集架构 (Instruction Set Architecture, ISA):主要指处理器所支持的机器语言、数据类型、字长、内存与寄存器类型等,例子:x86, alpha, MIPS, RISC-V
● 微架构 (Micro-architecture, µarch):主要指 ISA 的一种具体的处理器实现,比如处理器核数、缓存大小、流水线长度等,例子:Intel Xeon E5 处理器
● 系统架构 (System Architecture):主要指与处理器不直接相关的其他部分,比如访存、I/O、网络、软件等
■ Harvard 架构:将指令 (即程序) 与数据存储在不同的内存中。
■ Princeton 架构:将指令 (即程序) 与数据共同存储在内存。仅具有单一的线性内存,指令与数据仅在使用时才隐式区分;总性能往往受限于内存的读写总线所能提供的延迟和带宽。
● 提高处理器性能的其他重要手段
■ 简化指令 (Simplified Instruction):复杂指令集计算机 (Complex Instruction Set Computer, CISC);精简指令集计算机 (Reduced Instruction Set Computer, RISC);
■ 指令级并行 (Instruction Level Parallelism, ILP):超标量 (superscalar):同时译码多个指令;流水线 (pipeline):多个指令流水执行 (流水线宽度、深度);乱序执行 (out-of-order execution):设法改变指令执行顺序。
■ 数据级并行 (Data Level Parallelism, DLP):向量化 (vectorization):单指令多数据 (如:乘加指令)。
● 福林分类。从两个正交的维度:指令流(Intruction Stream)和数据流(Data Stream),其中每个维度有 Single 和 Multiple 两种可能选择。产生SISD,SIMD,MISD,MIMD
● UMA ( Uniform Memory Access) :一致内存访问架构
● ccNUMA (cache-coherent Nonuniform Memory Access) :缓存一致性的非一致内存访问架构
● 集群 (cluster):计算节点 (compute node) 之间通过高速网络互联,计算节点内部可以是任意类型的单核或共享内存架构
▶ 古斯塔夫定律:记 α ∈ [0,1] 是某任务无法并行处理部分所占的比例. 假设该任务的工作量可以随着处理器个数缩放,从而保持处理时间固定. 则对任意 n 个处理器,相比于 1 个处理器,能够取得的加速比 S ′ (n) 不存在上界
▶ 孙-倪定律 (Sun-Ni’s Law):记 α ∈ [0,1] 是某任务无法并行处理部分所占的比例. 假设该任务的可并行部分随着处理器个数 n 按照因子 G(n) 缩放,则对任意 n,相比于 1 个处理器,能够取得的加速比 S ∗ (n) 满足
● 孙-倪定律的应用