【1】PRAM 模型又称 SIMD-SM 模型,也称为共享存储的 SIMD 模型,是一种抽象的并行计算模型,它是从串行的 RAM 模型直接发展起来的。在这种模型中,假定存在一个容量无限大的共享存储器,有有限个或无限个功能相同的处理器,且他们都具有简单的算术运算和逻辑判断功能,在任何时刻个处理器都可以通过共享存储单元相互交互数据。
优点:适合并行算法表示和复杂性分析,易于使用,隐藏了并行机的通讯、同步等细节。
缺点:不适合 MIMD 并行机,忽略了 SM 的竞争、通讯延迟等因素。
【2】APRAM 模型又称 MIMD-SM。每个处理器有其局部存储器、局部时钟、局部程序;无全局时钟,各处理器异步执行;处理器通过 SM 进行通讯;处理器间依赖关系,需在并行程序中显式地加入同步路障。
优点:
- APRAM 模型比其 PRAM 来更接近于实际的并行计算机,且保留了 PRAM 编程的简捷性;
- 由于使用了同步障碍指令,所以不管各处理器的延迟有多长,程序必定是正确的;
- 因为APRAM 模型中的成本参数是定量化的,所以对算法的分析也不困难。
缺点: 虽然容易编程和分析算法的复杂度,但与现实相差较远,其上并行算法非常有限,也不适合 MIMD-DM 模型。
【3】BSP 模型是一种异步 MIMD-DM 模型,支持消息传递系统,块内异步并行,块间显式同步。BSP 模型从 PRAM 的基础上发展起来,它早期的版本就叫做XPRAM 。相比之下, APRAM 模型是一种 " 轻量级 " 同步模型,而 BSP 则是 " 大 " 同步模型。
优点:强调了计算和通讯的分离,提供了一个编程环境,易于程序复杂性分析。
缺点:需要显式同步机制,限制至多 h 条消息的传递等。
【4】logP 模型是一种分布存储的、点到点通讯的多处理机模型,其中通讯由一组参数描述,实行隐式同步。
优点:捕捉了 MPC 的通讯瓶颈,隐藏了并行机的网络拓扑、路由、协议,可以应用到共享存储、消息传递、数据并行的编程模型中。
缺点:难以进行算法描述、设计和分析。
【5】C3 模型是一种与体系结构无关的粗粒度的并行计算模型,他以时下逐渐流行的并行集群系统为目标,旨在反映计算复杂度、通信模式和资源(信道)冲突对粗粒度网络并行算法的影响。
优点:
- 用 Cl 和 Cp 来度量网络的拥挤对算法性能的影响;
- 考虑了不同路由和不同发送或接收原语对通信的影响;
- 不需要用户指定调度细节,就可以评估超步的时间复杂性;
(4) 类似于 H-PRAM 模型的层次结构, C3 模型给编程者提供了 K 级路由算法的思路,即系统被分为 K 级子系统,各级子系统的操作相互独立,用超步代替了 H-PRAM 中的 Sub PRAM 进行分割。
缺点:
- Cl 度量的前题假设为同一通信对中的 2 个处理机要分别位于网络对分后的不同子网络内;
- 模型假设了网络带宽等于处理机带宽,这影响了正确描述可扩展系统;
- 在 K 级算法中,处理机间顺序可以由多种排列,但 C3 模型不能区分不同排列的难易程度。
【6】BDM 模型是共享存储编程模式与基于消息传递的分布存储系统之间的桥梁模型。主要的 4 个参数为:
- P 处理器个数;
- τ 处理机从发出访问请求到得到远程数据的最大延迟时间;
- M 局部存储器中连续的 M 个字;
(4)σ 处理机发送数据到网络或从网络接收数据的时间。
优点:
- 用 M 反映出空间局部性特点,提供了一种评价共享主存算法的性能方法,度量了因远程访问引起的处理间的通信;
- BDM 认可流水线技术。
- 可编程型好;
- 考虑了共享主存中的存储竞争问题;
(5) 可以用来分析网络路由情况。
缺点:
(1) 认为初始数据置于局存中,对于共享主存程序的编程者来说,需要额外增加数据移动操作;
- 未考虑网络中影响延迟的因素 ( 如处理机的本地性、网络重拥挤等 ) ;
- 未考虑系统开销。§