并行计算(1):并行计算机体系结构
目录

1. Flynn分类


Flynn(1966)按照指令流数据流多倍性概念将计算机系统结构进行了分类。 其中,指令流指的机器执行的指令序列。 数据流指的指令流调用的数据序列。 多倍性指机器瓶颈部件上可能并行执行的最大指令或数据的个数。

据此,计算机系统可分为以下四类:

  • SISD(Single-Instruction Single-Data)
  • SIMD(Single-Instruction Multi-Data)
  • MISD(Multi-Instruction Single-Data)
  • MIMD(Multi-Instruction Multi-Data)

其中,SISD就是普通的单处理机(串行机或顺序机),MISD不太实际。 而SIMD和MIMD就是常见的并行计算机。

1.1 SIMD

SIMD是一种采用一个控制器来控制多个处理器,同时对一组数据(又称“数据向量”,vector) 中的每一个分别执行相同的操作从而实现空间上的并行性的技术。 在微处理器中,单指令流多数据流技术则是一个控制器控制多个平行的处理微元, 例如Intel的MMX/SSE以及AMD的3D Now!技术,这属于CPU的向量指令,用于加速多媒体应用。

优点:

  • vector/matrix操作有较高的性能

缺点:

  • 太依赖计算的类型,如:图形计算
  • 如果计算类型不是“embarrasingly parallel”,那么性能和资源利用率就表现的很糟糕。

1.2 MIMD

MIMD是使用多个控制器来异步地控制多个处理器,从而实现空间上的并行性的技术。 我们常见的SMP就是这个类型的典型。

优点:

  • 能够使用已有的组件
  • 更适合无规律的数据访问模型

优点:

  • 需要更多的硬件
  • 在每个处理器上存储指令/OS

2. 系统结构


MIMD按照系统结构划分,又可以分为以下几类:

2.1 PVP(Parallel Vector Processer)

并行向量处理机,由向量处理器(VP)组成的专用机型。

2.2 SMP(Symmetric Multi Processing)

使用商业CPU,它们共享总线与内存,每个CPU同等访问内存(UMA)、I/O设备和操作系统服务。 单一OS。在软件上是可扩展的,而硬件上不能。

一般用于数据库、在线事务处理系统和数据仓库等。编程时基于共享内存通信。

2.3 DSM(Distributed Shared Memory)

DMS与SMP主要差别是,DSM在物理上内存也分布,但是使用单一内存地址空间。 非一致内存访问(NUMA),单一OS。

编程时基于消息传递或共享内存(DSM)通信。

2.4 MPP(Massive Parallel Processing)

一般指超大型(Very Large-Scale)计算机系统,成百上千乃至上万个商用处理器,定制高速网,N个微内核或1个OS。

编程时基于消息传递。

2.5 Cluster/COW

Clusters/COW:由SMP节点通过普通网络互联组成,编程时基于消息传递通信。

平时见的最多的还是SMP和Clusters。 Cluster由于无可比拟的性价比优势占据主流位置。 PVP,MPP在构造大规模系统,应用饱和性能方面具有优势,资金充足的依然会选择。

3. Parallel Computer Memory Architectures 访存方式


按照访存模型划分:

  • UMA (Uniform Memory Access), CC-UMA
  • NUMA (Nonuniform Memory Access), CC-NUMA
  • COMA (Cache-Only Memory Architecture)
  • NORMA (No-Romote Memory Access)

3.1 UMA 均匀存储访问

  • 存储器被所有处理器共享;
  • 每个处理器等价地访问共享存储器;
  • 每个处理器可带有高速缓存;
  • CC-UMA – Cache Coherent UMA

Cache Coherence: If one processor updates a location in shared memory, all the other processors know about the update. Cache coherence is accomplished at the hardware level.

3.2 NUMA 非均匀存储访问

  • 存储器分布在所有节点中,每个节点能直接访问其它节点的存储器
  • 所有节点存储器的集合构成统一地址空间
  • 节点处理器访问本地存储器较快,访问其它节点存储器较慢
  • 典型的NUMA是由SMP节点物理连接组成的系统
  • If cache coherence is maintained, they may also be called CC-NUMA

3.3 COMA 全高速缓存存储访问

  • 各处理器节点中没有存储层次结构,全部高速缓存组成了全局地址空间;
  • 利用分布的高速缓存目录进行远程高速缓存的访问;
  • 使用COMA时,数据开始时可任意分配,因为在运行时它最终会被迁移到要用到它们的地方;

3.4 CC-NUMA 高速缓存一致性非均匀存储访问

  • 大多数使用基于目录的高速缓存一致性协议;
  • 保留SMP结构易于编程的优点,也改善常规SMP的可扩展性;
  • CC-NUMA实际上是一个分布共享存储的DSM多处理机系统;

3.5 NORMA 非远程存储访问

  • 所有存储器私有
  • 消息传递互连网络

4. 内存共享方式


按照内存共享方式划分:

4.1 Shared Memory

Shared memory machines can be divided into two main classes based upon memory access times:

  • UMA(Uniform Memory Access): SMP
  • NUMA(Non-Uniform Memory Access): DSM

4.2 Distributed Memory

Memory addresses in one processor do not map to another processor, so there is no concept of global address space across all processors.

4.3 Hybrid Distributed-Shared Memory

混合前两种内存共享方式

属性 PVP SMP MPP DSM COW
结构类型 MIMD MIMD MIMD MIMD MIMD
处理器类型 专用定制 商用 商用 商用 商用
互联网络 定制交叉开关 总线、交叉开关 定制网络 定制网络 商用网络(以太、ATM)
通信机制 共享变量 共享变量 消息传递 共享变量 消息传递
地址空间 单地址空间 单地址空间 多地址空间 单地址空间 多地址空间
系统存储器 集中共享 集中共享 分布非共享 分布非共享 分布非共享
访存模型 UMA UMA NORMA NUMA NORMA

参考文献

发表评论