高性能并行计算系统
1.微处理器的存储结构
2.Cache结构对程序性能的影响
例如 矩阵乘法中不同循环顺序对程序性能的影响。
DO J=1,N
DO I=1,N
C(I,J) = 0.D0
ENDDO
ENDDO
DO I=1,N
DO J=1,N
DO K=1,N
C(I,J) = C(I,J) + A(I,K) * B(K,J)
ENDDO
ENDDO
ENDDO
3.计算平台介绍
Flynn于1972年提出了计算平台的Flynn分类法,主要根据指令刘和数据流来分类,攻分为四种类型的计算平台,如下图所示:
单指令流但数据流机器(SISD)
SISD机器是一种传统的串行计算机,他的硬件不支持任何形式的并行计算,所有的指令都是串行执行。并且在某个时钟周期类,CPU只能处理一个数据流。因此这种机器被称为单指令流数据流机器。早期的计算机都是SISD机器,如IBM PC 机,早起的巨型机和许多8位家用机等。
单指令流多数据流机器(SIMD)
SIMD是采用一个指令流处理多个数据流。这类机器在数字信号处理、图像处理、以及多媒体信息处理等领域非常有效。
Intel处理器实现的MMXTM、SSE(Streaming SIMD Extensions)、SSE2及SSE3扩展指令集,都能在单个时钟周期类处理多个数据单元。也就是说我们现在用的单核计算机基本上都属于SIMD机器。
多指令流单数据流机器(MISD)
MISD是采用多个指令流来处理单个数据流。由于实际情况中,采用多指令流处理多数据流才是更有效的方法,因此MISD知识作为理论模型出现,并没有投入到实际应用当中。
多指令流多数据流机器(MIMD)
MIMD机器可以同时执行多个指令流,这些指令流分别对不同数据流进行操作。最新的多核计算平台就属于MIMD的范畴,例如Intel和AMD的双核处理器等都属于MIMD。
4.常见的并行计算方案
4.1共享内存SMP型并行计算机
- 对称多处理器(Symmetric Multi-Processors),或共享内存处理器(Shared Memory Processors)。
- 多个处理器通过系统总线或交叉开关共享一个或者多个内存模块。
- 优点:使用简单,维护方便。
- 缺点:受系统总线带宽限制,只能支持少量处理器(一般十几个)。
- 并行编程方式:通常采用OpenMP,也可以使用消息传递机制(MPI/PVM)及HPF。
- 代表机型:SGI Power Challenge:【01-chall.sh】,Sun E10000,等。
4.2分布式内存MPP型并行计算机
- Massively Parallel Processors 的简称
- 指由大量具有局部内存的计算节点通过高速系统网络联接而构成的并行处理系统。
- MPP系统的系统网络通常具有某种拓扑结构(如:tree ,mesh,torus,hypercube)。
4.3DSM型并行计算机
分布式共享内存:Distributed Shared Memory
- 多个物理上具有独立内存的处理单元,通过高速网络联接在一起。
- 逻辑上作为共享内存并行机使用。
- 也称为NUMA结构(NonUniform Memory Access)。
- 不同处理单元间内存的共享通过特殊的硬件/软件实现。
- 具有比SMP型并行机更好的可扩展性(超过100个CPU)。
- 代表机型:SGI Origin 2000/3000
4.4SMP/DSM机群
- 将多台SMP或DSM并行机通过互联网络连接而成。
- 目前国内外最高性能的并行机大多是这种结构。
4.5.微机/工作站机群
- 微机机群(PCcluster,又称为Beowulf cluster),工作站机群(NOW,Network Of Workstations):将联网的多台微机或工作站组织成一台并行计算机。目前才杭甬的网络有以太网(100Mbps),ATM(155/622Mbps),Myrinet(1.2Gbps,http://www.myricom.com)。
- 适合于构造中等规模的并行系统(多达数百个处理器)。
- 根据机群中所使用的记性可为同构型和异构型两种。
- 根据机群的使用方式又可分为专用型和兼用型。前者指该机群专门用于并行计算。
- 微机/工作站机群的有点是价格便宜、配置灵活。但其规模及并行效率受网络设备的制约。
配以适当的系统管理工具及作业调度、性能监控、并行程序调试开发环境、及外设等,微机/工作站机群系统可以达到与商用MPP系统一样的使用效果。