文章目录
- 6.1 并行处理技术的基本概念
- 6.2 `SIMD` 并行计算机(阵列处理器)
-
- 6.2.1 阵列机的基本结构
-
- 1. 阵列机分布式存储器
- 2. 共享存储器的阵列机
- 6.2.2 阵列机的主要特点
- 6.2.3 典型 `SIMD` 计算机举例
-
- 1. ILLIAC-Ⅳ阵列计算机(阵列机)
-
- (1) `ILLIAC-Ⅳ` 阵列
- (2) 阵列控制器
- (3) 输入输出系统
- 2. `BSP` 计算机
-
- (1) 并行处理机
- (2) 控制处理机
- (3) 文件存储器
- (4) 对准网络
- (5) 质量存储系统
- 6.3 `SIMD` 并行计算机算法
-
- 6.3.1 矩阵加
- 6.3.2 矩阵乘
- 6.3.3 累加和
- 6.4 `SIMD` 计算机互联网络
-
- 6.4.1 互联网的设计目标
- 6.4.2 互连函数
-
- 1. 恒等置换函数
- 2. 方体置换函数
- 3. 全混洗置换函数
- 4. 交换置换函数
- 5. 蝶式置换函数
- 6. 子蝶式置换函数
- 7. 移数置换函数
- 8. `PM2I` 置换函数
- 6.4.3 互联网的分类和结构参数
-
- 1. 互联网的分类
- 2. 互联网络的结构参数
-
- (1) 度
- (2) 距离和直径
- (3) 中继量 R R R
- (4) 方向性
- (5) 规则性和对称性
- (6) 广播时间
- 6.4.4 静态互联网络
-
- 1. 线性网和星形网
- 2. 环网和带弦环网
- 3. 循环移数网和全连接网
- 4. 完全二叉树网和二叉肥树网
- 5. 网格形网络
- 6. 立方体网络
- 6.4.5 动态互联网络
-
- 1. 互联网络中的三个参数
-
- (1) 交换开关
- (2) 连接模式
- (3) 控制方式
- 2. 单级互联网络
-
- (1) `PM2I` 单级互联网络
- (2) 混洗(洗牌)交换网络
- (3) 交叉开关网络
- 3. 多级互联网络
-
- (1) `STARAN` 网络
- (2) 间接二进制 n n n 方体网络
- (3) Ω Ω Ω `Omega` 网络
- (4) 基准网络
- (5) 全排列网络
- 6.5 多处理机
,计算机系统结构由低向高发展的过程,是并行处理技术不断发展的过程。平行处理技术比设备的发展对提高计算机性能更重要——设备速度的提高受物理条件的限制,不能超过光速,并行处理技术可以通过资源的重复来实现,其发展基本上是无穷无尽的。因此,从这个意义上说,它有更广阔的应用前景,并将发挥更重要的作用。
6.1 并行处理技术的基本概念
所谓在数值计算、数据处理、信息处理或人工智能求解过程中,。并行性发展的目的是,。
并行性的双重含义是指(或并行)和。所谓是指两个或两个以上的事件同时发生,并发性是指两个或两个以上的事件发生在同一时间间隔内。
它指的是相对的信息处理方法,重点开发计算过程中的并发事件。并行处理时,每次处理的规模可能不同,可用表示。关于并行粒度的大小。 G G G 以下公式可以用来表示(假设系统共有) P P P 个处理器) : G = T W T C = ∑ i = 1 P t w i ∑ i = 1 P t c i G = \dfrac{T_W}{T_C} = \dfrac{ \displaystyle\sum^P_{i = 1} t_{wi}} { \displaystyle\sum^P_{i = 1} t_{ci}} G=TCTW=i=1∑Ptcii=1∑Ptwi 式中,分子为,而分母表示。当 T C TC TC 较大时, G G G 就较小,表明处理粒度较细。当处理粒度较细时,显然此时处理器间的通信量将加大,相反当粒度较粗时,通信量就较小。
并行性有不同的等级,而且从不同角度观察时,会有不同的划分方法。程序执行过程通常可划分成以下 5 5 5 个等级——和。前 3 3 3 级为,主要是通过实现,开发手段以为主,其中包括并行性算法分析、任务的调度与分配等;而后 2 2 2 级为,主要是在中实现,开发手段以为主,其中包括标量流水、超标量流水、超流水和超长指令字等。
有时间重叠、资源重复和资源共享。
- :在并行性中引入时间因素。即,以赢得速度,如指令的流水执行方式。
- :在并行性中引入空间因素。即通过来提高处理性能或可靠性,如阵列处理机。
- :利用软件的方法,,以提高系统资源的利用率。
从计算机系统结构的角度出发,根据并行性的三个途径,从计算机系统由低性能向高性能发展过程中可以看出,。
- 一方面在单处理机上,通过,分别向异构型多处理机系统、同构型多处理机系统和分布式处理系统方向发展。
- 另一方面在多计算机系统中,通过等手段,分别向异构型多处理机系统、同构型多处理机系统和分布式多处理机系统的方向发展。
例如,,以提高单台计算机的执行速度。这一思想仍可应用于多台计算机组成的系统,如在高级语言向汇编语言转换过程中,是由编译程序完成翻译的。将翻译的全过程分为编译扫描、编译分析和目标程序生成三个子过程。。由于这三台计算机结构可以不一样(非对称型),故这样组成的多计算机系统称为异构型多计算机系统。
按照的思想,既然在一个计算机系统内可由多个相同的处理单元构成阵列处理机,那么用,也可以组成多计算机系统,这种系统结构称为同构型(对称型)多计算机系统。
按照的思想,单处理机采用,并发展成为分布式多计算机系统。
6.2 SIMD
并行计算机(阵列处理机)
本节将讨论以 SIMD
方式工作、采用的并行性措施的阵列处理机。由于历史原因,习惯上也将阵列处理机(简称“阵列机”)称为并行处理机。这里首先讨论它的,然后是它的,最后简短讨论。
6.2.1 阵列机的基本结构
阵列机通常由一个 CU
、 N N N 个 PE
、 M M M 个 M
及一个 IN
所组成。由 CU
控制将指令广播给系统中的各个 PE
,而所有活跃的 PE
将以同步方式执行相同的指令(单指令流),它们从相应的存储模块中取得自己所需的数据对象(多数据流)。IN
用来使各个 PE
之间或是 PE
和 M
之间实现方便的通信连接。IN
有时也称为 Alignment
或 Permutation
。有关互连网络的问题,在下一节作进一步讨论。
为了形式化地表示阵列机的特征,可用以下的参数加以描述: C = ( N , F , I , M ) C= (N, F, I, M) C=(N,F,I,M) 式中, N N N 为 PE
数; F F F 为确定互连网络结构及连接拓扑的; I I I 为,它能进行标量、向量、数据传送通路操作和网络变换操作等; M M M 为,每一种方式将 PE
集合分为活跃和非活跃两类 PE
的子集。这种描述模型,为评价不同的阵列机结构提供了比较基础。
根据存储器模块是以分布方式存取还是集中方式存取,阵列机可分为两种基本结构:和。
1. 分布式存储器的阵列机
分布式阵列机的基本结构如图6.1(a)所示。这种阵列机的主要结构特征如下:
- ,以存放系统程序和用户程序,此外,。
CU
的主要功能是。对于标量或控制类指令,CU
本身中含有运算部件可以直接执行;若是向量指令,它就将此指令广播给各个PE
去执行。- 具有 N N N 个相同的处理单元
PE
,它由处理器Pi
和局部存储器Mi
组成。只要数据分配得当,。各个PE
将通过IN
实现相互间必要的数据交换,因此,。 - ,但是并不一定每个操作非得所有
PE
都参加,,只有那些未被屏蔽的活跃PE
才可参加操作。 - ,使各个
PE
之间通过IN
,实现相互之间必要的数据交换。当相互需要交换数据的两个PE
不直接相连时,就需要经过它们之间的中间PE
来完成连接。
2. 共享存储器的阵列机
图6.2(b)中示出了这种类型的阵列机结构。与图6.2(a)中分布式存储器的阵列机结构比较,区别主要在于:
- 每个
PE
没有局部存储器。。 - 。要求互连网络具有同时连接
PE
到M
或M
到PE
的双向性。系统中的一个PE
,可以与任何另一个PE
实现数据交换(只要有任何一个存储模块,同时与这两个PE
相连接) 。当两个需交换数据的PE
之间没有共享的存储模块时,可能需要经过多次的传送之后,方可实现交换。
6.2.2 阵列机的主要特点
阵列机是以方式工作的,它具有以下特点:
- 它采用方法引入空间因素,即,这与利用时间重叠的流水线处理机是不一样的。此外,,所有处理单元必须同时进行相同操作。
- 。这是由于阵列机中通常都采用简单、规整的互连网络,实现处理单元间的连接操作,从而限定了它所适用的求解算法类别。因此,「对互连网络设计的研究」就成为阵列机研究的重点之一。
- ,以便使它的求解算法的适应性更强一些,应用面更广一些。
- 从处理单元来看,由于都是相同的,因而可将阵列机看成是一个同构型并行机。但,而为了完成I/O操作以及操作系统的管理,尚需一个前端机。因此,实际的阵列机系统是由上述三部分构成的一个异构型多处理机系统。
6.2.3 典型 SIMD
计算机举例
1. ILLIAC-Ⅳ阵列计算机(阵列机)
由美国宝来 Burroughs
公司和伊利诺斯大学在1965年开始研制,并于1972年由宝来公司生产的 ILLIAC-Ⅳ
阵列机,是 SIMD
并行计算机的一个典型代表。它可分为两大部分,即 ILLIAC-Ⅳ
阵列和 ILLIAC-Ⅳ
输入输出系统。实际上,它是由三种类型处理机组成的一个异构多机系统:一是;二是,它既是处理单元阵列的控制部分,又是一台相对独立的小型标量处理机;三是,由它担负 ILLIAC-Ⅳ
输入输出系统和操作系统管理功能,如图6.2所示。
(1) ILLIAC-Ⅳ
阵列
ILLIAC-Ⅳ
阵列计算机共有 64 64 64 个 PE
,由控制器 CU
统一控制。系统由一台 B6700
作为宿主机进行管理,每个 PE
有自己的局存 PEM
,容量 2 K 2K 2K 字,字长 64 64 64 位。每个 PE
拥有 4 4 4 个 64 64 64 位寄存器,分别用做和。此外,尚有 1 1 1 个 16 16 16 位和 1 1 1 个 8 8 8 位,后者是用来存放 PE
屏蔽信息的。这是一种,每个 PE
只能与 4 4 4 个近邻的 PE
直接相连,即PE
与 PEi - 1
,PEi + 1
,PEi - 8
和 PEi + 8
(Mod 64)
4 4 4 个近邻直接相连。
因此,从一个 PE
要将数据达到另一个 PE
时,可能中间要经过若干个其他 PE
转送。传送步数 S ≤ N − 1 S≤\sqrt{N}- 1 S≤N
−1 ,这里 N N N 为 PE
数。对于 ILLIAC-Ⅳ
来讲,由于 N = 64 N = 64 N=64 ,故 S ≤ 7 S≤7 S≤7 。例如,从 PE9
到 PE45
的距离以这一路径为最短:PE9 → PE1 → PE57 → PE56 → PE48 → PE47 → PE46 → PE45
ILLIAC-Ⅳ
阵列机的每一个处理单元 PE
有 6 6 6 个可编程序寄存器 RGA, RGB, RGR, RGS, RGX, RGM
以及 AU
、 LU
、 SU
和 ADA
等。
RGA
是,存放第一操作数和操作结果。RGB
是,存放加、减、乘、除等二元操作的第二操作数。RGR
是,也是,用于PE
与经过东、西、南、北 4 4 4 个互连通路之一的另一个处理单元之间的数据直接传送。RGS
是,程序用来暂存中间结果。上述这 4 4 4 个寄存器都是 64 64 64 位的。操作数来自以下 4 4 4 个方面:PE
本身的寄存器、PE
的处理单元存储器PEM
,CU
的公共数据总线CDB
,PE
的 4 4 4 个近邻处理单元。RGX
是 16 16 16 位的,它利用地址加法器ADA
修改指令地址,并将形成的有效地址经过MAR
,输入存储器逻辑部件MLU
。RGM
是 8 8 8 位的模式寄存器,RGM
中的E
和E1
位是“活动”标志位,用来控制RGA, RGS
和处理单元存储器PEM
,E
位还控制RGX
。。RGM
的其他 6 6 6 位分别是:F
和F1
位保存运算出错(上溢、下溢)标志,G, H, I, J
位保存测试结果。RGM
经常处于CU
的监督之下,一旦出错,就发出CU
陷阱中断。
处理单元存储器 PEM
分属于每一个处理单元,各有 2048 × 64 2048× 64 2048×64 位存储容量,PEM
的取数时间不大于 350 n s 350ns 350ns 。 64 64 64 个 PEM
联合组成,存放数据和指令。
整个阵列存储器可以接受 CU
的访问,读出 8 8 8 个字的信息块到 CU
的缓冲器中。阵列存储器也可经过 1024 1024 1024 位的总线与 I/O 开关相连。 。分布在各个 PEM
中的公共数据只能先读至 CU
后,再经 CU
的公共数据总线 CDB
广播到 64 64 64 个处理单元中去。
阵列存储器的另一个特点是:控制器 CU
实现所有处理单元的公共变址,每一个处理单元 PE
还可以单独变址。。
(2) 阵列控制器
阵列控制器 CU
实际上是一台小型控制计算机,它除了能对阵列的处理单元实行控制以外,还能利用自己的内部资源执行一整套指令,用以完成标量的运算操作。CU
的标量操作与各 PE
的数组操作是的。
阵列控制器 CU
同处理单元阵列之间有 4 4 4 条信息通路:
- 。,以 8 8 8 个 64 64 64 位字为一个信息块。这里的指令是指分布存放在
PEM
中用户程序的指令,而数据可以是处理所需要的公共数据。指令和数据先被送到CU
,。 -
Common Data Bus, CDB
。CDB
是 64 64 64 位总线,用于。例如,作为公共乘数的常数就不必在 64 64 64 个PEM
中重复存放,可以由CU
的某一个寄存器送往各处理单元。另外,。 -
Mode Bit Line
。,送来的信息中包括该处理单元的“活动”状态位。从 64 64 64 个PE
送往CU
的模式位,在CU
的累加寄存器中拼成一个模式字,以便在CU
内部执行一定的测试指令,对这个模式字进行测试,并根据测试结果来控制程序的转移动作。 - 。处理单元微操作控制信号和处理单元存储器地址、读/ 写控制信号都经过约 200 200 200 条指令控制线,由
CU
送到阵列处理单元PE
和存储器逻辑部件MLU
。
概括起来,阵列控制器 CU
的功能有以下 5 5 5 个方面:
- 对指令流进行控制和译码,执行标量操作指令。
- 向各处理单元发出执行数组操作指令所需的控制信号。
- 产生和向所有处理单元广播公共的地址部分。
- 产生和向所有处理单元广播公共的数据。
- 接收和处理由各
PE
(计算出错时)、系统I/O操作以及主机B6700
所产生的陷阱中断信号。
(3) 输入输出系统
ILLIAC-Ⅳ
输入输出系统由 DFS
,和 B6700
组成。磁盘文件系统 DFS
是两套大容量并行读写磁盘系统及其相应的控制器。每套磁盘系统有 13 13 13 台磁盘机,总容量为 1 0 9 10^9 109 位。每台磁盘机有 128 128 128 道,每道有一个磁头,并行读写,数据宽度为 256 256 256 位,最大传输率为 502 × 1 0 6 b i t / s 502 × 10^6 bit/ s 502×106bit/s,平均等待时间为 19.6 m s 19. 6ms 19.6ms 。如果 DFS
的两个通道同时发送或接收数据,则数据宽度为 512 512 512 位,最大传输率可达 1 0 9 b i t / s 10^9 bit/s 109bit/s 。
I/O分系统包括 3 3 3 部分,即 IOS
、 CDC
和 BIOM
。
IOS
的功能有两个:一是,用以把DFS
或可能连上的实时装置转接到阵列存储器,进行大批数据的I/O传送;二是,以平衡两边不同的数据宽度。CDC
的功能是。CU
提出 I/O 请求时,CDC
将使B6700
管理计算机中断,由B6700
响应输入/输出请求,并通过CDC
给CU
送回相应的响应代码,在CU
中设置好必要的控制状态字。然后,CDC
促使B6700
启动PEM
的加载过程,由DFS
向PEM
送入程序和数据。在PEM
加载完毕后,又由CDC
向CU
传送控制信号,使CU
开始执行ILLIAC-Ⅳ
的程序。- 。
B6700
存储器经CPU
输送数据的频宽是 80 × 1 0 6 b i t / s 80×10^6 bit/s 80×106bit/s ,而DFS
输送数据的频宽是 500 × 1 0 6 b i t / s 500×10^6 bit/s 500×106bit/s ,二者之间相差 6 6 6 倍多。因此,必须设立BIOM
作为B6700
和DFS
之间的缓冲。BIOM
把B6700
的 48 48 48 位字变换为ILLIAC-Ⅳ
的 64 64 64 位字,同时按双字 128 128 128 位的数据宽度输送给DFS
。实际上,BIOM
是用 4 个PEM
做成的,总容量为 8192 × 64 8 192×64 8192×64 位。