并行计算 第一章复习提纲
并行计算范围
基础知识--并行平台
- 单指令流多数据流(SIMD): 单一控制部件向每个处理部件分派指令;
- 控制语句会影响 SIMD 的性能
- 只有一个全局控件
- 设计研发周期长
- 多指令流多数据流(MIMD): 计算机的每个处理器都能够独立于其他处理器执行不同的程序;
- 需要在每个处理器上安装程序和操作系统
- 单程序多数据(SPMD): 是MIMD模型的简单变形, 相当于将每一个MIMD中的计算指令用任务标识符指定的条件插入到一个大的if-else程序块中
SIMD 硬件要求少, 但 研发要求高, 不适合许多具有不规则特性的应用程序,切需要为其设计硬件体系, 不够经济
基础知识--并行平台的数据通道/通信模型
并行任务间有两种主要的数据交换方式:
-
访问共享数据空间
-
交换消息
1. 共享地址平台
共享地址空间是指并行平台支持一个公共的数据空间,所有处理器都能访问该空间。
处理器通过修改存储在共享地址空间的数据来实现交互。
- 一致内存访问(UMA): 处理器访问系统中任何内存字(不包括cache)的时间都相同
- 非一致内存访问(NUMA): 访问某些内存字的时间长于其他内存字的访问时间
共享内存计算机,即内存在物理上被多个处理器共享的一种体系结构,每个处理器对任意的内存断有等同的访问权,属于UMA模型。共享地址空间计算机, 属于NUMA模型。
2. 消息传递平台
消息传递平台由p个处理节点构成,每个节点都有自己的独立地址空间。
运行在不同节点上的进程之间的交互必须用消息来完成,基本的消息交互操作是send和receive。
在由p个节点的共享地址空间计算机上,很容易模拟含有同样节点个数的消息传递体系结构;反之,在消息传递计算机上 模拟共享地址空间体系结构的代价很高。
基础知识--并行平台的物理组织
理想架构
理想的并行随机访问计算机(PRAM) 包含p个处理器以及大小不受限制的全局内存,所有处理器同样可以访问该内存
然而允许并发就会带来同步问题,目前有几种协议解决同步问题:
- 共有,如果处理器试图写的所有值都相同,则允许并发写。
- 任意,任一处理器可以进行写操作,而其余的处理器则不行。
- 优先级,处理器按预定义的优先级列表排列、最高优先级的处理器可以进行写操作而其他的处理器不能。
- 求和,所有量的总和被写入(基于求和的写冲突解决模型能够扩展到任意由待写入量定义的相关操作符上)。
互联网络
互联网络 提供多个处理节点之间或处理器与内存模块之间的数据传输的机制。
- 静态互连网络:处理单元间有着固定连接的一类网络,在程序执行期间,这种点到点的链接保持不变;
- 动态网络(非直接):用交换开关构成的,可按应用程序的要求动态地改变连接组态
互接网络中的开关由一组输入及输出端口构成。
一个开关中端口的总数也称为该开关的度.
每个开关有两种联通方式:
- 直通式: 输入直接传送到输出处
- 跨接式: 跨接开关节点输入,然后再送出
网络拓扑结构
互联网络中使用了各种各样的拓扑。这些结构用来实现成本、可拓展性和性能间的平衡
1. 总线网络
简单,到任意节点距离为O(1)
瓶颈在于总线带宽
2. 交叉开关
网格型,每个交叉点均为一个开关
3. 多级网络
多级网络比总线网络在性能方面可扩展性更强,又比交叉开关网络在成本上可扩展性更强
节点分层,每一层都可以采用不同结构
4. 多级omega网络
每一级网络处理 p 个输入, p 个输出, 网络级数为 log p
每一级都有一种互联模式, 例如 完全混洗互联
完全混洗互联中, 首节点和尾节点不参与混洗,仍指向相同位置
经过完全混洗互联后,并非直接输出,而是两辆一组送到 2 * 2 **开关 **中
因此网络成本为 log p * p / 2
, 其中 log p
为 网络深度, p / 2
为每一层开关个数
此成本低于完全交叉网络的 p ^ 2
多级omega网络路由选择
- 设s为需要写数据到存储区t的处理器的二进制表示。
- 数据穿过链路到达第一个开关节点。
- 如果s和t的最高有效位相同,那么开关就会按直通式方式进行数据选路;如果最高有效位不同,则以跨接方式进行数据选路。
- 在下一个开关级,再使用下一个最高有效位来重复同样的方案。
5. 线性阵列、格网、k-d网
网络中链路过多, 选择稀疏网构造并行计算机
线性阵列 拓展到二维及为 格网
再拓展到更高维则成为 k-d网
K-d格网指的是一种拓扑结构,它有d维,每一维上有k个节点
线性阵列构成k-d网格的一个极端;
另一种成为超立方体的拓扑结构构成另一个极端,即在每个维度上有两个节点。
网中节点最大距离为 log p
, 每个节点有 log p
个邻居
6. 基于树的网络
网络中任意一对节点间只存在一条通路
线性阵列和星形连接网络都是树网格的特例
静态网络在树的每个节点都有处理器;
动态树网络中,中间层的节点位交换节点,叶子节点是处理器
由于树网络中越靠上层对于带宽要求越大,因此可以通过增加通信链路,以及增加更接近根节点的交换节点的个数
网络评价
静态网络
- 网络直径:网络中任意两个处理节点之间的最长距离。两个处理节点间的距离定义为它们间的最短路径(用链路数目表示)。
- 连通性:连通性是网络中任意两个节点间路径多重性的度量。
- 弧连通性:将一个网络分为两个不连通网络需要删去的最少弧数目。
- 对分宽度:把网络分为两个相等网络时,必须删去的最小通信链路的数目。
- 通道宽度:能够通过连接两个节点链路同时进行通信的位数。
- 对分带宽(或截面带宽):对分网络任何两半之间允许的最小通信量,它是对分宽度和通道宽度的乘积。成本:网络中所需的通信链路数量。