第8章 SIMD 处理机 8.1 SIMD处理机模型 8.2 SIMD处理机的结构 8.3 SIMD处理机实例
8.1 SIMD处理机模型 两种并行性概念: (1)同时性并行Simultaneity:两个或两个以上事件在同一时刻发生。 (2)并发性并行Concurrency:两个或两个以上事件在同一时间间隔内发生。 三条技术途径: (1)资源重复:重复设置多个部件来提高速度。 (2)时间重叠:流水线 (3)资源共享:分时系统,分布式系统
按照按照佛林分类法,它属于SIMD处理机。SIMD处理机又称SIMD处理机,也称为阵列处理机。 多个处理部件PU按照一定方式互连,在同一个控制部件CU控制下,对各自的数据完成同一条指令规定的操作。从CU看,指令是串行执行的,从PU看,数据是并行处理的。 按照按照佛林分类法,它属于SIMD处理机。SIMD处理机又称SIMD处理机,也称为阵列处理机。 2. SIMD处理机的主要应用领域: 用于高速向量或矩阵运算。
M=(N,C,I,M,R), 其中: 3. SIMD处理机的操作模型可用五元组来表示: N为PE个数。如IlliacIV有64个PE。 C为控制部件CU执行的指令集,包括标量指令和程序控制指令。 I为所有PE并行执行的指令集,包括ALU、数据传送等操作 M为屏蔽操作集,将PE划分为允许操作和禁止操作两个子集 R是数据寻径集,互连网络中PE间通信所需要的各种模式
4. H.J.Siegel提出的SIMD处理机模型
8.2 SIMD处理机结构 8.2.1 SIMD处理机的基本结构 8.2.2 分布存储器SIMD处理机 8.2.3 共享存储器SIMD处理机
一台SIMD处理机由五个部分组成: 多个处理单元PE, 多个存储器模块M, 一个控制器CU, 一个互连网络ICN, 一台输入输出处理机IOP。 SIMD处理机有两种典型结构: 分布存储器SIMD处理机, 共享存储器SIMD处理机。
8.2.2 分布存储器SIMD处理机 目前的大部分SIMD处理机属于基于分布式存储器模型。 分布式存储器SIMD处理机比较容易构成MPP(Massively Parallel Processor),可以有几十万个处理部件PE。 CU是控制部件。对于标量指令,在CU中直接执行;对于向量指令,CU把它广播到各个PE中去执行。 在CU中通常有一个较大容量的存储器,用来存放程序和共享数据。
IOP是输入输出处理机,或称为主机。在IOP上安装操作系统,它除了负担输入输出工作外,还负责程序的编辑、编译和调试等工作。 IOP可以是一台通用计算机。 分布式存储器SIMD处理机必须依靠并行算法来提高PE的利用率。因此,应用领域有限,可以认为是一种专用计算机。 数据在局部存储器中的分布是一个很关键的问题。 标量指令与向量指令可以并发执行。
分布式存储器SIMD处理机的结构框图
8.2.3 共享存储器SIMD处理机 共享多体并行存储器SM通过互连网络与各处理单元PE相连。 存储模块的数目等于或略大于处理单元的数目。为了实现无冲突访问,存储模块的个数为质数。 在存储模块之间合理分配数据,通过灵活、高速的互连网络,使存储器与处理单元之间的数据传送在大多数向量运算中都能以存储器的最高频率进行,而最少受存储器冲突的影响。
共享存储器模型的处理单元数目一般不多,几个至几十个。 Burroughs Scientific Processor(BSP)采用了这种结构。16个PE通过一个16×17的对准互连网络访问17个共享存储器模块。 存储器模块数与PE数互质可以实现无冲突并行访问存储器。 对互连网络的要求很高。
共享存储器SIMD处理机的结构框图
8.2.4 SIMD处理机的特点 SIMD处理机的主要特点如下: 与流水线处理机、向量处理机等比较。 1. 速度快,而且潜力大 2. 模块性好,生产和维护方便 3. 可靠性高,容易实现容错和重构 4. 效率低 与流水线处理机、向量处理机等比较。 依靠的是资源重复,而不是时间重叠,它的每个处理单元要担负多种处理功能,其效率要低一些。
主要依靠增加PE个数,与流水线处理机主要依靠缩短时钟周期相比,其提高速度的潜力要大得多。 5. 潜力大 主要依靠增加PE个数,与流水线处理机主要依靠缩短时钟周期相比,其提高速度的潜力要大得多。 6. 依赖于互连网络和并行算法 互连网络决定了PE之间的连接模式,也决定了SIMD处理机能够适应的算法。 7. 需要有一台高性能的标量处理机 如果一台机器的向量处理速度极高,但标量处理速度只是每秒一百万次,那么对于标量运算占10%的题目来说,总的有效速度就不过是每秒一千万次。
8.3 SIMD处理机实例 IlliacIV 是最先采用SIMD结构的SIMD处理机。 随后一个方向是用位片PE制造的SIMD处理机, 如Goodyear MPP、AMT/DAP610和TMC/CM-2 CM-5是以SIMD模式运行的同步MIMD计算机 另一方向是字宽运算PE的中粒度SIMD计算机 SIMD处理机的两个发展方向: 保留阵列结构,但每个处理单元的规模减小,如一个bit。 去掉阵列结构和分布存储器。Burroughs公司的BSP是代表。
8.3.1 IlliacIV SIMD处理机 1963年,美国西屋电器公司提出“Slotnick,The SOLOMON Computer,Simultaneous Operation linked Ordinal Modular Network”。 1966年美国国防远景研究规划局ARPR与伊利诺依大学签定合同。原计划:256个PE,运算速度为1GFLOPS。 Burroughs公司和伊利诺依大学于1972年共同设计和生产,1975年实际投入运行。用了4倍的经费,只达到1/20的速度。只实现了88=64个PE,只达到50MFLOPS。 IlliacIV的影响非常大。它是SIMD处理机的典型代表,也是分布存储器SIMD处理机的典型代表。
IlliacIV处理机阵列: 包括8×8 PE、PEM和互连网络。 阵列控制器CU。 输入输出处理机:一台标准的Burroughs B6700计算机。
标量操作与各PE的数组操作可以重叠执行。 控制器的功能有以下五个方面: (1)对指令进行译码,并执行标量指令; 1. 阵列控制器 阵列控制器CU实际上是一台小型计算机。 对阵列处理单元实行控制和完成标量操作。 标量操作与各PE的数组操作可以重叠执行。 控制器的功能有以下五个方面: (1)对指令进行译码,并执行标量指令; (2)向各PE发出执行数组操作指令的控制信号; (3)产生并向所有处理单元广播公共的地址; (4)产生并向所有处理单元广播公共的数据; (5)接收和处理PE、I/O操作以及B6700产生的陷阱中断信号。
IlliacIV的输入输出系统包括: 磁盘文件系统DFS, I/O分系统, 一台B6700处理机组成。 I/O分系统由三个部分组成: 2. 输入输出系统 IlliacIV的输入输出系统包括: 磁盘文件系统DFS, I/O分系统, 一台B6700处理机组成。 I/O分系统由三个部分组成: 输入输出开关IOS, 控制描述字控制器CDC, 输入输出缓冲存储器BIOM。
IlliacIV处理阵列由88=64个PU组成。每个PU由处理部件PE和它的局部存储器PEM组成。 每一个PUi只和它的东、西、南、北四个近邻: PUi+1 mod 64、PUi-1 mod 64、PUi+8 mod 64、PUi-8 mod 64直接连接。 南北方向同一列PU连成一个环, 东西方向构成一个闭合螺线。 闭合螺线网络直径为7步, 环形网格的直径为8步。
例如:从PU0到PU36,采用环行网格必须8步: 或 PU0PU8PU16PU24PU32PU33PU34PU35PU36 或 … 如果采用闭合螺旋线,只需要7步: PU0PU63PU62PU61PU60PU52PU44PU36 或 PU0PU63PU55PU47PU39PU38PU37PU36 或 …… 对于n×n个单元的阵列,网络直径为n-1。
二维闭合螺旋线网格网 结点度为4,网络直径为n-1。
8.3.2 BSP处理机 BSP(Buroughs Scientific Processor)计算机是由美国宝来公司和伊利诺依大学于1979年制造的。 BSP是共享存储器SIMD处理机的典型代表。 BSP由5个部分组成: 控制处理机、 SIMD处理机、 文件存储器、 并行存储器模块、 对准网络。
(2)通过输出对准网络把数据送入16个并行处理部件 (3)16个并行处理部件SIMD处理机数据 17个存储模块,每个模块512K字,周期160ns 5级流水线: (1)从17个存储模块中读出数据 (2)通过输出对准网络把数据送入16个并行处理部件 (3)16个并行处理部件SIMD处理机数据 (4)通过输入对准网络把数据从并行处理部件送到并行存储器 (5)把接收到的数据写入并行存储器 时钟周期160ns,向量运算速度50MFLOPS。
执行存放在控制存储器中的操作系统和用户程序的标量部分。 把全部的向量指令及成组的标量指令送给SIMD处理机。 2. 控制处理机 控制处理机主要用来控制SIMD处理机。 提供与系统管理机相连的接口。 执行存放在控制存储器中的操作系统和用户程序的标量部分。 把全部的向量指令及成组的标量指令送给SIMD处理机。 控制维护单元是系统管理机与控制处理机之间的接口,用来进行初始化、监控命令通信和维护。
计算任务文件从系统管理机加载到文件存储器,由控制处理机执行。 文件存储器是在BSP直接控制下的唯一外围设备。 3. 文件存储器 计算任务文件从系统管理机加载到文件存储器,由控制处理机执行。 文件存储器是在BSP直接控制下的唯一外围设备。 程序执行过程中所产生的暂存文件和输出文件,在将它们送给系统管理机输出给用户之前是存在文件存储器中的。 文件存储器的数据传输率较高,大大地缓解了I/O受限问题。
数据从一个源广播至几个目的地,几个源寻找一个目的地时能分解冲突。 存储器模块和对准网络的组合实现了无冲突访问并行存储器。 4. 对准网络 对准网络采用全交叉开关实现。 数据从一个源广播至几个目的地,几个源寻找一个目的地时能分解冲突。 存储器模块和对准网络的组合实现了无冲突访问并行存储器。 对准网络还可以实现快速傅里叶变换、数据压缩和扩展操作。
只有数组存取和I/O访问并行存储器。等效存储周期为10ns。 5. 无访问冲突存储系统 只有数组存取和I/O访问并行存储器。等效存储周期为10ns。 两次算术运算中需要用到三个变量,产生一个结果,共访问存储器4次,并行存储器和浮点运算之间的频带保持完全平衡。 对于长向量来,中间结果存在寄存器中,每次运算只需要一个操作数。因此并行存储器有足够的频宽留给输入和输出信息用。 实现一维向量和二维矩阵的行、列、对角线和反对角线的无冲突访问。
8.4 SIMD处理机算法举例 8.4.1 有限差分问题 8.4.2 矩阵乘 8.4.3 求累加和
SIMD处理机特别依赖于并行算法。 并行算法的一个关键是提高向量化的程度。 在设计并行算法时,要特别注意: 数据在多个存储模块之间的分布。 要解决好访问存储器的冲突问题。 互连网络并不能提供所有处理单元之间的连接,因此,并行算法要充分利用互连网络的结构。
把连续方程变换成离散形式。二阶偏导数表示为差分形式: 8.4.1 有限差分问题 有限差分方法是一种通用和有效方法: 把连续方程变换成离散形式。二阶偏导数表示为差分形式:
并代入原方程,则可得有限差分计算公式: 其中:(x, y)为平面直角坐标, h为网格间距。 IlliacIV的阵列结构特别适合计算这种在网格上定义的有限差分函数。 把内部网格点分配给各个处理单元,计算过程可以并行完成。 运算速度的提高可以与处理机数目成正比。
矩阵乘是典型的并行程序,非常适合在SIMDSIMD处理机上运行。 例如:A、B、C均为8×8的二维矩阵,则C=A×B的计算公式为: 8.4.2 矩阵乘 矩阵乘是典型的并行程序,非常适合在SIMDSIMD处理机上运行。 例如:A、B、C均为8×8的二维矩阵,则C=A×B的计算公式为: 在串行机上要用一个三重循环程序,乘法和加法分别为512次。
如果在SIMD处理机上求解,FORTRAN语言程序如下: DO 10 I=0,7 C(I, J)=0 DO 20 K=0, 7 20 C(I, J)=C (I, J )+A(I, K) * B(K, J) 10 CONTINUE 可以在8个PE的SIMD处理机运行,运算速度可提高8倍。也可在64个PE的SIMD处理机上运行 数据如何分布到各个局部存储器中?
在SIMD处理机上,J循环只需一次。 PE0:c00=a00b00+a01b10+a02b20……+a07b70 PE1:c01=a00b01+a01b11+a02b21……+a07b71 …… PE7:c07=a00b07+a01b17+a02b27……+a07b77 PE0:c10=a10b00+a11b10+a12b20……+a17b70 PE1:c11=a10b01+a11b11+a12b21……+a17b71 PE7:c17=a10b07+a11b17+a12b27……+a17b77 PE7:c77=a70b07+a71b17+a72b27……+a77b77
8.4.3 求累加和 把N个数的顺序相加变为并行相加。 串行求和的 FORTRAN 程序如下: C(-1)=0 DO 10 I=0, N 10 C(I)=C(I-1)+A(I) 在SIMD处理机上,采用递归加法,FORTRAN 程序如下: DO 10 I=0,log2N-1 10 A=A+SRL(A, 2**I) ;A向量右移2i个PE 在SIMD处理机上只需做 log2N 次加法。
运算次数增加:从N次增加到N·log2N次 效率降低:实际效率为1/log2N 递归求和算法的性能分析: 运算速度提高:加速比为N/log2N倍 运算次数增加:从N次增加到N·log2N次 效率降低:实际效率为1/log2N 如:N=1024,速度提高100倍,运算次数增加10倍,效率只有1/10 如果N=220,即100万个数求和,速度可以提高5万倍。 这种方法也称为级联求和,或递归求和。 与流水线中采用的方法类似,它利用加法结合律来提高并行度。
本章重点: 1.并行处理的基本结构 2.并行处理的特点 3.典型的SIMD处理机算法 练习题: 8.3 8.6(改为:n个PE) 8.12