第八章 SIMD计算机 (P451)
SIMD计算机 指由 一个控制部件 和 多个运算部件 组成的处理机为核心的计算机系统。这样的处理机又被称为 并行处理机或阵列处理机 。
SIMD 的主要用途是数组(向量或矩阵)运算,其特点是大量数据同时进行同种操作,所以只需要设置一个控制器。
所谓 SIMD 计算机,是 指 重 复设 置 多 个 同 样 的 处 理 单 元 PE
( Processing Element),按照一定的方式相互连接,在统一的控制器控制下,各自对分配来的数据并行地完成同一条指令所规定的操作 。
CU
PU3
PU2
PU1
MM3
MM2
MM1
IS
IS
DS1
DS2
DS3
8.1 SIMD的 5个组成部分 (P453)
运 ──运算器阵列,PE0~ PEN-1( Processing Element);
控 ──控制器,CU( Control Unit),它是单一的,除了解释向量指令并驱动运算器阵列操作外,它还能独立完成标量运算;
存 ──存储器,LM0~ LMN-1( Local Memory,也有书标为 PEM0~
PEMN-1 。在后面介绍的另一种结构中标为 SM0~ SMm-1,意为 Share
Memory),它们也构成一个阵列,这样才能满足运算器阵列并行存取多个数据的要求;
管 ──管理计算机,SC( Supervisor Computer),职能是从事作业运行前后的辅助操作(例如输入输出等),通常由一台通用小型机担任;
网 ──互连网络,ICN( Interconnection Network),职能是提供运算器阵列或存储器阵列的成员之间并行交换数据的高速通路。
8.2 SIMD的两种结构类型 (P453~ P454)
(1)分布存储结构
P453图 8.2
(2)共享存储结构
P454图 8.3
8.2 SIMD的两种结构类型 (P453~ P454)
(1)分布存储结构
P453图 8.2。 此结构 PE对本地存储体存取数据非常方便,但对其它存储体进行交叉存取则无法实现,必须通过在各存储体之间进行置换操作,将数据转换为本地存取才能访问;
8.2 SIMD的两种结构类型 (P453~ P454)
(2)共享存储结构
P454图 8.3。 各 PE可按多种对准模式对共享存储体交叉存取数据,在一定程度上避免了置换操作 。
三,SIMD计算机的 特点
SIMD计算机与前面介绍的向量处理机都擅长于向量处理。
1,SIMD计算机 —— 资源重复
2,SIMD计算机有互连网络
3,SIMD计算机是一台向量处理专用机。
SIMD同向量计算机对比
SIMD计算机(即向量并行计算机)与向量流水计算机都适合作向量 /矩阵运算,但工作方式不同。它们的主要的区别如下系统结构并行性开发途径运算速度设备利用率向量长度对运算时间的影响向量长度对算法的影响向量流水计算机 时间重叠 较慢 设备少,利用率高 线性增长 在一定范围内无影响向量并行计算机 资源重复 较快 设备多,利用率低 在一定范围内无关 密切相关
8.3 SIMD的代表实例 ─── ILLIAC IV(P457)
ILLIAC IV的 ICN( P458)
它是单级 PM2I网络 的一个子集,F={PM2± 0,PM2± (n/2)},这里 n=6。
任意两个结点之间的距离不超过 7步。
ILLIAC IV的 4条并行传输指令 ( P479)
循环左传 1(西),循环左传 8(北),循环右传 1(东),循环右传 8(南)。
每个 PEi的组成 ( P458~ P459)
A ── 累加器( 64位)
B ── 通用寄存器( 64位)
R ── 互连寄存器( 64位)
M ── 模式寄存器( 8位),其中的“活动位”控制本 PEi对 CU命令的响应
PU
i
P E
i
LM
i
(或 P EM
i

PU
i- 8
来 去 PU
i- 8
I CN PU
i- 1
来 PU
i + 1
来 去 PU
i- 1
去 PU
i +1
PU
i +8
来 去 PU
i + 8
2 0 4 7 号单元 ( 64 位)
……
X 变址寄存器 ( 1 6 位)M 模式寄存器 ( 8 位)
R 寻径寄存器 ( 64 位)
S 通用寄存器 ( 64 位)
B 操作数寄存器 ( 64 位)
A 累加器 ( 64 位)
1 号单元 ( 64 位)
0 号单元 ( 64 位)
每个 PEi的组成
8.4 SIMD的典型算法 (P483)
8.4.1 矩阵加,减 ( P484)
累加器:
地址 α +0,
存储器 地址 α +1,
地址 α +2,
C
0,0
B
0,0
A
0,0
A
C
0,7
B
0,7
A
0,7
A
C
7,0
B
7,0
A
7,0
A
C
7,7
B
7,7
A
7,7
A
8.4.2 迭代平均 ( P483)
工程数学中,常需求解场方程,其常用方程拉普拉斯方程(式 8.8)。
用计算机求解该方程需要先将其差分化(步长为 h),差分结果为式 8.10
,这是一个典型中值公式,每一轮迭代中要对所有结点进行一次上述计算
。当进行到所有结点第 K轮值与第 K+1轮值足够接近时,就认为得到了方程数字解答。在 SISD计算机上做每一轮迭代要求 64个元素都按上述公式计算,共 64次;在 SIMD计算机上各单元可按上述公式并行计算,速度是前者的 64倍。并行计算过程如下:
每一轮迭代中各结点的基本操作(参看教材 P479程序 8.1):
1.累加器清零;
2.现有数据同时北传;
3.累加器加上南来数据;
4.现有数据同时东传;
5.累加器加上西来数据;
6.现有数据同时南传;
7.累加器加上北来数据;
8.现有数据同时西传;
9.累加器加上东来数据;
10.累加器除以 4,得新数据;
11.若新数据与现有数据之差大于允差,则以新数据替换现有数据,转 1,否则结束。
8.4 SIMD的典型算法 (P483)
矩阵加,减 ( P484)
迭代平均 ( P483)
非数组问题的向量化算法 ( P486)
c = a
0
+ a
1
+ a
2
+ a
3
+ a
4
+ a
5
+ a
6
+ a
7
①,右传 2
0
步屏蔽 PE
0
加法 1 步
②,右传 2
1
步屏蔽 PE
0
~ PE
1
加法 1 步
③,右传 2
2
步屏蔽 PE
0
~ PE
3
加法 1 步例 1画出 16台处理器仿 ILLIAC Ⅳ 的模式进行互连的互连结构图,列出 PU0分别只经一步和二步能将信息传送到的各处理器号。要将信息传到 PU(6,7,9,10)至少需几步?
PU0经过一步,可以将信息传到 PU(1,15,4,12)
PU0经过二步,可以将信息传到 PU(2,3,5,8,11,13、
14)
将信息传到 PU(6,7,9,10)
至少需要 3步本章小结
(1) SIMD的 5个组成部分
(2) SIMD的两种结构类型
(3) SIMD的代表实例 ─── ILLIAC IV
(4) SIMD的典型算法。
习题,P498,题 12。