并行计算综述

第一章 并行计算硬件平台:并行计算机



Ch1 并行计算与并行计算机结构模型

1.1多核处理器与线程级并行

1.何谓多核处理器?

将功能复杂的单一核处理器划分为若干个功能相对简单的多个处理器内核。这些多处理器集中在一块芯片上。最初称为单芯片多处理器CMP,Intel公司将其商用名定为多核处理器

2.多核处理器的意义:
  • 解决单处理器瓶颈:密集晶体管集成,功耗剧增。设计指令级并行体系结构来利用晶体管资源,但软件与硬件设计复杂
  • 具有自己的优势:CMP设计验证周期短、开发风险成本低,相对较低的主频功耗也相对较低、单处理器程序移植easy,通过布局可以改善多处理器内核之前延迟和带宽
3.微处理器中的并行方式
  • ILP:指令级并行。单处理器同一时候运行多条指令,包含乱序运行、分支预測、指令多发射、硬件预取等技术
  • TLP:线程级并行,多处理器多线程运行
  • 多任务OS:多进程多线程分时间片轮转或抢占式,OS管理
  • SMT:同一时候多线程技术,超标量与多线程的结合,同一时候发射多个线程中的多条不相关指令
  • CMP:单芯片多处理器
  • 虚拟计算技术:异构平台,剥离指令集结构和处理器依赖关系(运行时虚拟化JVM、系统虚拟化)
  • Intel超线程技术:单核心模拟双核心环境运行多线程,是一种SMT

1.2 并行计算机体系结构

1.并行计算机结构模型

(1)结构类型

  • SISD:单指令流单数据流计算机(冯诺依曼机)
  • SIMD:单指令流多数据流计算机
  • MISD:多指令流单数据流计算机
  • MIMD:多指令流多数据流计算机

(2)几种MIMD

  • PVP并行向量处理机:多VP(向量处理器)通过交叉开关和多个SM(共享内存)相连
  • SMP对称多处理机:多P/C(商品微处理器)通过交叉开关/总线和多个SM(共享内存)相连
  • MPP大规模并行处理机:处理节点有商品微处理器+LM(分布式本地内存)。节点间通过高带宽低延迟定制网络互联,异步MIMD,多个进程有自己的地址空间,通过消息传递机制通信
  • COW工作站机群:节点是完整操作系统的工作站,且有磁盘
  • DSM分布共享存储处理机:快速缓存文件夹DIR确保缓存一致性。将物理分布式LM组成逻辑共享SM从而提供统一地址的编程空间

注:对称指全部处理器都能同等地訪问I/O非常相同的运行程序(如OS和I/O服务程序)。而非对称主从式是仅有主处理器运行OS和控制訪问I/O并监控从处理器运行

2.并行计算机訪存模型
  • UMA(Uniform Memory Access)均匀存储訪问:物理存储器被全部处理器均匀共享,全部处理器对全部SM訪存时间相同,每台处理器可带有快速私有缓存,外围设备共享。
  • NUMA非均匀存储訪问:共享的SM是由物理分布式的LM逻辑构成,处理器訪存时间不一样,訪问LM或CSM(群内共享存储器)内存储器比訪问GSM(群间共享存储器)快
  • COMA(Cache-Only MA)全快速缓存存储訪问:NUMA的特例、全快速缓存实现
  • CC-NUMA(Coherent-Cache NUMA)快速缓存一致性NUMA:NUMA+快速缓存一致性协议
  • NORMA(No-Remote MA)非远程存储訪问:无SM,全部LM私有。通过消息传递通信
3.Cache一致性协议
  • 监听总线协议:总线连接通信。写无效和写更新策略
  • 基于文件夹的协议:文件夹记录共享数据缓存状态,读缺失时查看文件夹D,写更新时通知文件夹D
4.其它并行计算概念

衡量并行计算机性能单位:

  • PFLOPS:每秒1千万亿 (=10^15) 次的浮点运算
  • TFLOPS:每秒1万亿 (=10^12) 次的浮点运算
  • GFLOPS:每秒10亿 (=10^9) 次的浮点运算

TOP500前500名超级计算机排名指标(GFLOPS):

  • Rmax:Maximal LINPACK(Linear system package) performance achieved
  • Rpeak:Theoretical peak performance


Ch2 并行计算机系统互连与基本通信操作

2.1 并行计算机互连网络

互连网络是并行计算机系统中各处理器与内存模块等之间传输的机制

1.静态互连

处理单元间有固定连接的网络。程序运行期间这样的点到点的连接不变

  • 一维线性阵列LA/LC:二邻近串联
  • 二维网孔MC:四邻近连接(Illiac连接、2D围绕)
  • 树连接TC:二叉树、星型网络、二叉胖树(节点通路向根节点方向逐渐变宽,解决通信瓶颈)
  • 超立方HC:3立方、4立方
  • 立方环:3立方顶点用环取代
2.动态互连

交换开关构成的,可按应用程序要求动态改变连接组态

  • 总线:连接处理器、存储模块、I/O外围设备等的一组导线和插座,分时工作、多请求总线仲裁,多总线(本地、存储、数据、系统)和多层总线(板级、底板级、I/O级)
  • 交叉开关:高带宽的开关控制的专用连接通路网络。NxN的开关网络同一时候仅仅能接通N对源目的通信
  • 多级互联网络MIN:每一级用多个开关单元,各级之间有固定的级联拓扑
3.标准网络互连
  • FDDI光纤分布式数据接口
  • 快速以太网
  • Myrinet:商用千兆位包开关网
  • InfiniBand:交换式通信结构

2.2-2.5 通信代价公式

1.选路

(1)消息格式

消息是由一些定长的信包组成,信包包含了

  • 选路信息R
  • 顺序号S
  • 多个数据片D

(2)存储转发选路SF

SF中信包是基本传输单位,中间节点必须收齐信包中全部分片且存储在缓冲器后才可能传向下一节点

长度为m的信包,穿越l条链路,SF基本通信时间公式:


tcomm(SF)=ts+(mtw+th)l


当中ts是启动时间,th是节点延迟时间。tw是传输每一个字节的时间(带宽倒数)

(3)切通选路CT

CT中信包切片传输(包头和数据片),相似流水线

长度为m的信包。穿越l条链路。CT基本通信时间公式:


tcomm(CT)=ts+mtw+lth


2.SF一到多播送

(1)一维环

最远的节点是瓶颈:


tone−to−all(SF)=(ts+mtw)⌈p/2⌉


(2)带围绕的Mesh

先完毕行SF围绕播送,再完毕列的SF围绕播送(即两次节点个数为p‾‾√的一维环SF):


tone−to−all(SF)=2(ts+mtw)⌈p‾‾√/2⌉


(3)超立方

同理带围绕的Mesh,可推知:


tone−to−all(SF)=3(ts+mtw)⌈p13/2⌉


3.CT一到多播送

(1)一维环

CT通信时间与中继节点无关。採取先按高维播送,再按中维播送,最后按低维播送:


tone−to−all(CT)=∑i=1log(p)(ts+mtw+th×p/2i)=(ts+mtw)log(p)+th(p−1)


(2)带围绕的Mesh


tone−to−all(CT)=(ts+mtw)log(p)+2th(p‾‾√−1)


(3)超立方


tone−to−all(CT)=(ts+mtw)log(p)


2.SF多到多播送

(1)一维环

p-1次环路传播:


tall−to−all(SF)=(ts+mtw)(p−1)


(2)带围绕的Mesh

先行环路多播,再列环路多播


tall−to−all(SF)=(ts+mtw)(p‾‾√−1)+(ts+mp‾‾√tw)(p‾‾√−1)=2ts(p‾‾√−1)+mtw(p−1)


(3)超立方


tall−to−all(SF)=tslog(p)+mtw(p−1)



Ch4 并行计算性能评測

4.1 基本性能指标(见书)

4.2 加速比性能定律

约定:

  • p是处理器数
  • 问题规模W=程序中串行分量Ws+可并行部分Wh
  • f为串行部分比例,f=Ws/W
  • S为加速比
1.Amdahl加速定律

固定负载加速比公式:


Slimp→∞S=Ws+WpWs+Wpp=1f+1−fp=1f


若考虑并行额外开销W0:


Slimp→∞S=Ws+WpWs+Wpp+W0=1f+1−fp+W0W=1f+W0W


2.Gustafson

实际应用中增多了处理器不会固定问题规模,而是保持总时间不变的情况下去增大问题规模:


S=Ws+pWpWs+pWpp=Ws+pWpWs+Wp=f+p(1−f)


若考虑并行额外开销W0:


S=Ws+pWpWs+pWpp+W0=Ws+pWpWs+Wp+W0=f+p(1−f)1+W0/W


3.Sun&Ni定律

问题规模添加了,对应的存储容量也要添加p倍,令因子G(p)为存储容量添加到p倍时工作负载的添加,则有加速比:


S=Ws+G(p)WpWs+G(p)Wpp=f+(1−f)G(p)f+(1−f)G(p)/p


若考虑并行额外开销W0:


S=Ws+G(p)WpWs+G(p)Wp+W0p=f+(1−f)G(p)f+(1−f)G(p)/p+W0/W