- 海之寻趣
- Ranler
- 2012-06-02 12:54
- CC BY-NC-SA
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 |
参考文献
- http://zh.wikipedia.org/wiki/%E5%8D%95%E6%8C%87%E4%BB%A4%E6%B5%81%E5%A4%9A%E6%95%B0%E6%8D%AE%E6%B5%81
- http://www.lingcc.com/2010/05/10/10928/
- http://zh.wikipedia.org/wiki/%E5%B9%B6%E8%A1%8C%E8%AE%A1%E7%AE%97
- http://stackoverflow.com/questions/5570936/what-is-the-different-between-a-cluster-and-mpp-supercomputer-architecture
- Cache-only_memory_architecture