320 likes | 477 Views
第六章 阵列 处理机. 并行 处理机. 阵列处理机 ( Array Processor )也称 并行处理机 ( Parallel Processor )通过重复设置大量相同的处理单元 PE ( Processing Element ),将它们按一定方式互连成阵列,在单一控制部件 CU ( Control Unit )控制下,对各自所分配的不同数据并行执行同一组指令规定的操作。操作级并行的 SIMD 计算机。. 目录. 阵列处理机的原理 SIMD 计算机的互连网络 脉动阵列处理机 . §1 阵列 处理机的原理. 阵列处理机的构形与特点
E N D
并行处理机 • 阵列处理机(Array Processor)也称并行处理机(Parallel Processor)通过重复设置大量相同的处理单元PE(Processing Element),将它们按一定方式互连成阵列,在单一控制部件CU(Control Unit)控制下,对各自所分配的不同数据并行执行同一组指令规定的操作。操作级并行的SIMD计算机。
目录 • 阵列处理机的原理 • SIMD计算机的互连网络 • 脉动阵列处理机
§1 阵列处理机的原理 • 阵列处理机的构形与特点 • ILLIAC IV的处理单元阵列结构 • ILLIAC IV的并行算法举例
典型并行处理机 系统型号 SIMD计算系统结构和性能 语言、编译器 和软件支持 MasParMP-1系列 1024~16384个PE, 26 GIPS或1.3 Gflops; 每个PE带16KB本地存储器, X-Net网格加一个多级交叉开关互连网 Fortran77, MasPar Fortran (MPF)和MasPar并行应用语言; X窗口UNIX/OS, 符号调试程序, 可视化和动画制作程序
Thinking Machines公司CM-2 65536个PE排成10维超立方体, 每个PE可有1M位存储器, 32个PE共享FPU选件, 峰值速度28 Gflops和持续速度5.6 Gflops 由VAX, Sun或Symbolics 360主机驱动, PARIS支持的Lisp编译器、Fortran90、C*和*Lisp Active Memory Technology DAP600系列 1K位/PE方形网格互连成4096PE的细粒、位片SIMD阵列,正交4-邻位链接,20GIPS和560Mflops峰值性能 由主机VAX/VMS或UNIX Fortran-plus 或DAP上APAL提供,主机的Fortran77或C; 与Fortran90标准有关的Fortran-plus
阵列处理机的构形与特点 • 分布式存储器的阵列处理机构形 • 集中式共享存储器的阵列处理机构形 • 一台阵列处理机由五个部分组成 • 多个处理单元PE • 多个存储器模块M • 一个控制器CU • 一个互连网络ICN • 一台输入输出处理机IOP
分布式存储器的阵列处理机 • 各处理单元设有局部存储器PEM(Processing Element Memory),存放被分布的数据;只能被本处理单元直接访问 • 控制部件CU设有存放程序和数据的主存储器 • 整个系统在CU控制下运行用户程序和部分系统程序 • 处理单元之间可通过互联网络ICN(Interconnection Network) • 目前的大部分阵列处理机是基于分布式存储器模型的系统
CU IOP …… LM0 LM1 LMn-1 PE0 PE1 PEn-1 …… 互连网络
举例 • 60年代研制,1972年Burroughs公司的ILLIAC IV阵列处理机 • 1979年美国Goodyear公司MPP • 1974年设计、1980年英国ICL公司的分布式阵列处理机DAP • 美国Thinking Machines公司的CM-2 • MasPar公司的MP-1 • Active Memory Technology的DAP 600
集中式共享存储器的阵列处理机 • 存储器由K个存储体集中组成,经互联网络ICN为全部N个处理单元所共享 • 互联网络用于在处理单元与存储体分体之间进行转接而构成数据通路 • 对准网络(Alignment Network) • Burroughs公司和伊利若大学联合BSP
CU …… PE0 PE1 PEn-1 互连网络 …… SM0 SM1 SMk-1 IOP
阵列处理机的特点 • 背景----科学计算 • 有限差分、矩阵、信号处理、线性规划 • 数组、向量处理 • 资源重复,利用并行性中的同时性 • 简单而规整的互联网络---设计重点 • 专用机 • 与并行算法紧密相联
阵列处理机 • 阵列处理机实质上是由 • 专门对付数组运算的处理单元阵列组成的处理机 • 专门从事处理单元阵列的控制及标量处理的处理机 • 专门从事系统输入输出及操作系统管理的处理机 • 组成的一个异构型多处理机系统
ILLIAC IV的处理单元阵列结构 • 阵列处理机上并行算法的研究与结构紧密联系在一起 • 并行处理机处理单元阵列的结构又是适合于一定类型计算问题而专门设计的结构
PU57 PU63 PU56 PU0 PU1 PU7 PU8 PU7 PU8 PU9 PU15 PU16 PU55 PU56 PU57 PU63 PU0 PU1 PU7 PU0 ILLIAC ⅠⅤ的处理单元阵列结构 PU63 闭合螺线阵列
特点 • 闭合螺线阵列 • 任意单元的最短距离不超过7步 • 一般来讲: 个处理单元组成的阵列中,任意两个处理单元之间的最短距离不会超过 步 • 处理单元为通常的累加型运算器,把类加寄存器RGA中的数据和存储器来的数据进行操作
ILLIAC IV的并行算法举例 • 矩阵加 • 矩阵乘 • 累加和
矩阵加 • 两个8*8矩阵相加,把分量放在每一个PEM内 • 算法: LDA ALPHA ADRN ALPHA+1 STA ALPHA+2 • 说明 • 速度提高64倍; • 信息如何分布于局部存储器的算法与系统结构及求解问题直接相关;
A(0,0) A(0,1) A(7,7) B(0,0) B(0,1) B(7,7) C(0,0) C(0,1) C(7,7) PEM0 PEM1 PEM63 矩阵相加的存储器分配
矩阵乘 • 设A、B和C为三个8*8的二维矩阵 计算:C=A*B,
矩阵乘(续) • SISD 算法: DO 10 I=0,7 DO 10 J=0,7 C(I,J)=0 DO 10 K=0,7 10 C(I,J)=C(I,J)+A(I,K)*B(K,J) • 说明 • SISD算法需8*8*8=512次运算
矩阵乘(续) • SIMD算法: DO 10 I=0,7 C(I,J)=0 DO 10 K=0,7 10 C(I,J)=C(I,J)+A(I,K)*B(K,J) • 说明 • SIMD算法需8*8=64次运算
C(0,0) A(0,0) B(0,7) B(0,0) A(0,7) C(0,0) C(0,1) B(0,1) A(0,1) B(1,0) C(1,0) A(1,0) B(1,1) A(1,7) C(1,1) C(1,7) B(1,7) A(1,1) : : : : : : : : : A(7,1) A(7,0) B(7,7) C(7,7) B(7,1) C(7,1) A(7,7) C(7,0) B(7,0) PEM1 PEM7 PEM0 矩阵乘的存储器分配
累加和 • 将N个数按顺序相加
累加和(续) • SISD算法: C=0 DO 10 I=0,7 10 C=C+A(I) • 说明 • 需要8次加法
累加和(续) • SIMD算法:递归相加 • 说明 • 需要 次加法 • 速度提高
置全部PEi为活跃状态, 0≤i≤7 • 全部A(I)从PEMi的α单元读到相应PEi的累加寄存器RGAi中, 0≤i≤7; • 令k=0; • 将全部PEi的(RGAi)转送到传送寄存器RGRi,0≤i≤7; • 将全部PEi的(RGRi)经过互连网络向右传送2k步距,0≤i≤7;
令j=2k-1 • 置PE0至PEj为不活跃状态; • 处于活跃状态的所有PEi执行(RGAi):=(RGAi)+(RGRi), j<i≤7; • k:=k+1; • 如k<3,则转回第四步,否则往下继续执行; • 置全部PEi为活跃状态, 0≤i≤7; • 将全部PEi的累加寄存器内容(RGAi)存入相应PEMi的α+1单元中, 0≤i≤7。
循环 K=1 K=2 K=0 PE0 A0 0 0 0 PE1 A1 0,1 0,1 0,1 0~2 0~2 PE2 A2 1,2 PE3 A3 2,3 0~3 0~3 PE4 A4 3,4 1~4 0~4 PE5 A5 4,5 2~5 0~5 PE6 A6 5,6 3~6 0~6 PE7 A7 6,7 4~7 0~7
阵列处理机的缺点 • 许多问题不能很好地映射为严格的数据并行算法 • 在某一时刻,阵列处理机只能执行一条指令,当程序进入条件执行并行代码时,效率会下降 • 很大程度上是单用户系统,不容易处理多个用户要同时执行多个并行程序情况 • 不适合于小规模的系统 • 使用定制的VLSI,无法赶上通用CPU的性能和成本改进 • 控制单元相对成本高的价格不再有效