高性能计算基于并行技术,是使用多处理机或者计算机集群进行大规模计算的计算系统和环境。
流水线技术与并行计算技术是提高计算效率的手段。并行计算从物理结构和存储结构上可以分为如下几种:
物理架构 |
存储结构 |
图示 |
SMP 对称处理器 |
UMA-单地址共享存储空间,物理上单一地址空间。
|
|
DSM-分布式存储多处理机系统 |
NUMA-物理上独立存储,逻辑上统一地址空间。不对称共享存储:处理机对自己的存储于对其他共享存储的操作不对称 |
|
MPP-大规模并行计算处理机系统 |
NUMA 物理上与逻辑上均多地址空间,每个处理机进程间有消息传递机制 |
|
Cluster-集群,每个节点都是一台完整的计算机 |
NORMA-多地址空间非共享存储,松耦合
也可以采用共享磁盘的方式完成集群。 |
不共享磁盘
共享磁盘 |
另有一种CC-NUMA存储结构,每个计算节点为一个SMP系统:
为了性能考虑,共享主存的多处理机系统中都会有一级或者两极cache。Cache的回写方案与写直达方案都会引起cache的不一致性。
解决思路有以下几种:
(1)软件方法:在编译器与操作系统上完成可能造成cache不一致的数据的判决并作出不允许共享数据等对策,软件方案过于保守,会影响系统性能
(2)硬件方法:目录协议与监听协议。目录协议将cache一致性归咎于存有目录的中央控制器,可能产生中央瓶颈问题,各处理机与中央处理机的通信负载可能会导致性能下降。监听协议采用写-无效与写-广播机制,将一致性的维护任务分不到每个处理机中。
(3)MESI协议:cache中的每行数据有四种状态的标记位:修改态、专有态、共享态、无效态。修改态:本行数据与主存中不一致并只能在这个cache中使用。专有态:此行与主存一致但只出现在这个cache中;共享态:此行同于主存并可以出现在其余cache中;无效态:此行cache不含有有效数据。MESI协议定义了四种状态的转化与数据操作,并可推广到两极cache的情况。
机群分类:
分类 |
集群化方法 |
说明 |
优点 |
缺点 |
被动式备用 |
|
一台服务器工作时另一台不工作,仅当主服务器故障、无心跳消息时时辅助服务器接替 |
易实现 |
高成本 |
主动式辅助 |
单独的服务器 |
数据源源不断从主服务器拷贝至辅服务器,故障时辅服务器接管 |
高可用性 |
复制操作增加网络开销 |
无共享 |
各个服务器连接到统一磁盘服务器,磁盘服务器的磁盘分卷给每个服务器,故障时磁盘服务器重新分配使故障服务器的磁盘被其余服务器接管 |
减少复制带来的网络开销 |
磁盘映像技术与raid技术必须补偿磁盘时效的危险 |
|
共享磁盘的服务器 |
所有服务器共享磁盘 |
|
除磁盘映像技术与raid技术外还必须有磁盘锁定管理软件,保证数据访问不冲突 |
机群系统操作系统必须有如下功能:
(1)故障管理
(2)负载平衡
(3)并行化计算:通常有三种方案:
(a)并行化编译:编译时确定可并行部分
(b)并行化应用:编程的时候使用并行模型并用消息函数在各服务期间传递消息
(c)参量计算
加速比是对并行收益的度量。有如下定理:
(1)Amadahl定理:固定规模的并行系统有加速比上线
(2)Gustafson定理:可扩展的系统中,加速比正比于处理机数量。
由此可见,系统的可扩展性决定了性能。机群系统有如下优势:
(1)绝对可扩展性:大集群性能优于任何独立计算机
(2)增量可扩展性:机群系统之间松耦合,只需要通过小增量的方式将新节点加入原有网络,无需重新建设大系统来替代原来的消息体。
(3)高可用性:因为每个节点都是独立计算机,采用raid高冗余
(4)在软件层完成容错处理,一个节点的故障不影响整个系统的运行。
(5)性价比高。
以共享磁盘的服务器为例:
机群中间件为使用者提供单一系统映像,要求是:
(1)单一入口点:使用者登录到机群而不是单一工作站
(2)单一文件层次:用户看到的机群文件系统是单一的
(3)单一控制点:一个管理节点
(4)单一虚拟网络:任意节点都能存取任意其他节点,不存在不可道情况
(5)单一存储空间:允许程序共享变量
(6)单一作业管理系统
(7)单一I/O空间
(8)单一进程空间:任何节点上的进程都能在远程计算机上生成进程并与之通信,就好像只有一台计算机
(9)有检查点:出错后可以回滚状态
(10)进程迁移:为了负载均衡
逻辑结构:
其中集群系统软件部署在管理节点上,系统层操作系统、编译器部署在每个计算节点上。并行运行环境MPI部署在每个节点上。
本方案中包括三个网络:
(1)Infiniband高速计算网,一种新的总线形式,摆脱了传统的总线分时共享形式,采用switch形式,高带宽、低延迟,用于并行计算中的消息传递
(2)千兆管理网:用交换机与以太网相连,用于基于TCP/IP协议的数据传输、节点操作系统的部署等管理操作。
(3)监控网:用于监控所有服务器的运行状态。
本方案中每个计算节点为采用刀片服务器,一个刀片相当于一个独立server,节省空间并减少布线,即插即用,可拓展性强,低成本。
网络拓扑:
MPI消息传递接口:
是一种SPMD(单程序多数据)方案,原理如下: