ComputerSchool,NUDT.Spring,20131Chapter2:ComputerClustersforScalableparallelComputing可扩展并行计算集群ComputerSchool,NUDT.Spring,201322.1大规模并行集群计算机集群(computercluster)由相互联系的个体计算机聚集组成,这些计算机之间相互联系并且共同工作对于用户来说,计算机集群如同一个独立完整的计算资源池。集群化实现作业级的大规模并行,并通过独立操作实现高可用性。计算机集群和大规模并行处理器(MPP)的优点包括可扩展性能、高可用性、容错、模块化增长和使用商用组件。ComputerSchool,NUDT.Spring,20134计算机集群的设计宗旨:可扩展性:计算机集群化是基于模块化增长的概念.将几百个单处理器节点的集群扩展为10000个多核节点的超级集群。这一些因素限制:如多核心芯片技术、集群拓扑结构、封装方式、电力消耗和冷控制技术应用。封装:集群节点可以被封装成紧凑或者松散的形式。封装直接影响通信线路的长度,需要选择合适的互连技术。紧凑集群通常利用专有的高带宽、低延迟的通信网络,而松散集群节点一般由标准的局域网或广域网连接。ComputerSchool,NUDT.Spring,20135控制:集群能够以集中或分散的形式被控制或管理。紧凑集群通常集中控制,而松散集群可以采取另一种方式。在集中式集群中,中心管理者拥有、控制、管理和操作所有节点。在分散式集群中,节点有各自的拥有者。它同样需要进程调度、负载迁移、检查点、记账和其他类似任务的特殊技术。同构性:同构集群采用来自相同平台的节点,即节点具有相同处理器体系结构和相同操作系统。异构集群使用来自不同平台的节点。互操作性是异构集群的一个非常重要的问题。在同构集群中,二进制进程镜像可以迁移到另一个节点并能够继续执行。这在异构集群中是不允许的,因为当进程迁移到不同平台的节点上时,二进制代码不继续执行。ComputerSchool,NUDT.Spring,20136安全性:集群内通信可以是开放的或封闭的。开放集群外界机器可采用标准协议(如TCP/IP)访问通信路径,从而访问单独节点。有几个缺点:集群内通信变得不安全;外界通信可能以不可预测的形式干扰集群内通信;准通信协议往往具有巨大的开销。在封闭集群中,集群内通信与外界相隔离,目前还没有高效、封闭的集群内通信标准。专用集群和企业集群:专用集群由相同类型的计算机节点同构配置,被用于代替传统的大型机或超级计算机,极大地提高了吞吐量,并且减少了响应时间。企业集群主要利用节点的闲置资源,每个节点通常是一个完整的SMP、工作站或PC及其所有必要的外部设备。通常是由异构计算机节点配置的。ComputerSchool,NUDT.Spring,20137基础集群设计问题:可扩展性能:资源扩展(集群节点、内存容量、I/O带宽等)使性能成比例增长单系统镜像(SSI):集群是一个单一独立的系统。可用性支持:集群能够利用处理器、内存、磁盘、I/O设备、网络和操作系统镜像的大量冗余提供低成本、高可用性的性能。集群作业管理:实现高系统利用率,作业管理软件需要提供批量、负载均衡和并行处理等功能。ComputerSchool,NUDT.Spring,20138节点间通信:集群由于具有更高的节点复杂度,故不能被封装得如MPP节点一样的简洁。集群内节点之间的物理网线长度比MPP长。容错和恢复:机器集群能够消除所有的单点失效。集群能在一定程度上容忍出错的情况。故障节点上运行的关键作业可以被转移到正常运行的节点上。回滚恢复机制通过周期性记录检查点来恢复计算结果。ComputerSchool,NUDT.Spring,20139集群分类:计算集群:主要用于单一大规模作业的集体计算。当单一计算作业需要集群中节点间的频繁通信,该集群必须共享一个专用网络,因而这些节点大多是同构和紧耦合的。这种类型的集群也被称为贝奥武夫集群。当集群需要在少量重负载节点间通信时,其从本质上就是众所周知的计算网格。紧耦合计算集群用于超级计算应用。高可用性集群:用于容错和实现服务的高可用性。高可用性集群中有很多冗余节点以容忍故障或失效。负载均衡集群:通过使集群中所有节点的负载均衡而达到更高的资源利用。可以在不同机器间平衡负载,从而达到更高的资源利用或性能。ComputerSchool,NUDT.Spring,201310Figure2.1ArchitecturalshareoftheTop-500systems(Courtesyof[25])ComputerSchool,NUDT.Spring,201311图2-2Top500超级计算机的性能变化曲线(1993—2010)ComputerSchool,NUDT.Spring,201312ComputerSchool,NUDT.Spring,201313ComputerSchool,NUDT.Spring,201314图2-3前5名超级计算机的能耗和性能(2010年11月)ComputerSchool,NUDT.Spring,2013152.2计算机集群和MPP体系结构基本集群体系结构图2-4由商用硬件、软件、中间件和网络组件构成的计算机体系结构,支持HA和SSIComputerSchool,NUDT.Spring,201316ResourceSharinginClusterofComputers图2-5连接集群节点的三种方式(P/C:处理器和缓存;M:内存;D:磁盘;NIC:网卡;MIO:内存-I/O桥)ComputerSchool,NUDT.Spring,201317节点结构和MPP封装:IBMBlueGene/LSupercomputer:TheWorldFastestMessage-PassingMPPbuiltin2005ComputerSchool,NUDT.Spring,201318集群系统互连ComputerSchool,NUDT.Spring,201319谷歌搜索引擎集群体系结构ComputerSchool,NUDT.Spring,201320图2-8Top500系统高带宽互连的分布情况ComputerSchool,NUDT.Spring,201321图2-9InfiniBand系统构造在典型高性能计算机集群中的应用ComputerSchool,NUDT.Spring,201322硬件、软件和中间件支持ComputerSchool,NUDT.Spring,201323大规模并行GPU集群图2-11实现Echelon系统的20Tflops和1.6TB/s内存带宽的GPU芯片设计ComputerSchool,NUDT.Spring,201324图2-12由GPU层次网络构成的NVIDIAEchelon系统的体系结构,其中每个机柜可以提供2.6Pflops的性能,至少需要N=400个机柜才能实现所需的Eflops性能ComputerSchool,NUDT.Spring,201325CUDA并行编程CUDA(ComputeUnifiedDeviceArchitecture,计算统一设备体系结构)由NVIDIA开发,提供并行计算体系结构。CUDA是NVIDIAGPU中的计算引擎,允许开发者通过标准程序语言访问。程序员可以使用NVIDIA扩展和受限的CUDAC。CUDAC通过PathScaleOpen64C编译器编译,可以在大量GPU核上并行执行。例2.4体现了在并行处理中使用CUDAC的好处。ComputerSchool,NUDT.Spring,2013262.3计算机集群的设计原则单系统镜像特征:单一系统用户将整个集群作为一个多处理器系统。单一控制逻辑上,一个终端用户或系统用户在一个地方只能通过单一的接口使用服务。对称性用户可以从任意节点使用集群服务。除了受到访问权限保护的部分,所有集群服务和功能对于所有节点和所有用户是对称的。位置透明性用户并不了解什么位置的物流设备最后提供了服务。ComputerSchool,NUDT.Spring,201327单系统镜像(SSI)包括单一入口、单文件层次、单一I/O空间、单一网络机制、单一控制点、单一作业管理系统、单一内存空间和单一进程空间。图2-13采用负载均衡的域名服务器(DNS)实现单一入口ComputerSchool,NUDT.Spring,201328图2-14单文件层次中存储的三种类型。实线表示进程P可以访问,虚线表示P可能被允许访问ComputerSchool,NUDT.Spring,201329图2-15具有单一网络连接、单一I/O空间、单一内存和单点控制的集群ComputerSchool,NUDT.Spring,201330SSI的最终目标是使得集群如同台式计算机一样易于使用,SSI额外特征:单一作业管理系统所有集群作业能够由任意节点提交到单一作业管理系统。单一用户接口用户通过单一图形界面使用集群。单一进程空间各节点的所有用户进程形成单一进程空间,并且共享统一进程认证机制。SSI集群化的中间件在集群应用的三个层次上,中间件支持各种SSI特征。ComputerSchool,NUDT.Spring,201331管理级该级处理用户应用程序,并且提供作业管理系统。编程级该级提供单一文件层次(NFS、xFS、AFS、Proxy)和分布式共享内存实现级该级支持单一进程空间、检查点机制、进程迁移和单一I/O空间。ComputerSchool,NUDT.Spring,201332图2-16在连接到集群中4个主机的12个分布式磁盘之上具有单一I/O空间的分布式RAID体系结构ComputerSchool,NUDT.Spring,201333图2-17在作业管理、编程和实现级上集群化中间件的关系ComputerSchool,NUDT.Spring,201334冗余高可用性可靠性根据系统不发生故障的运行时间衡量。可用性表示系统对用户可用的时间百分比,即系统正常运行的时间百分比。可服务性与服务系统的容易程度相关,包括硬件和软件维护、修复、升级等。ComputerSchool,NUDT.Spring,201335ComputerSchool,NUDT.Spring,201336图2-19SMP和三个集群中的单点失效(SPF),由a到d,其中冗余越大,消除的单点失效也越多ComputerSchool,NUDT.Spring,201337容错集群配置热备份服务器集群只有主要节点积极完成所有有用的工作。备份节点启动(热)和运行一些监控程序来发送与接收心跳信号以检测主要节点的状态,但并不积极运行其余有价值的工作。主动接管集群多个服务器节点的体系结构是对称的。两个服务器都是主要的,正常完成有价值的任务。两个服务器节点通常都支持故障切换和恢复。故障切换集群当一个组件失效时,该技术允许剩余系统接管之前由失效组件提供的服务。故障切换机制必须提供一些功能,如失效诊断、失效通知和失效恢复。ComputerSchool,NUDT.Spring,201338检查点和恢复技术检查点和恢复这两种技术必须共同发展,才能提高集群系统的可用性。某个进程周期性地保存执行程序的状态至稳定存储器,系统在失效后能够根据这些信息得以恢复。每一个被保存的程序状态称为检查点。包含被保存状态的磁盘文件称为检查点文件。虽然目前所有的检查点软件在磁盘中保存程序状态,但是使用节点内存替代稳定存储器来提高性能还处在研究阶段。ComputerSchool,NUDT.Spring,2013392.4集群作业和资源管理集群作业调度方法集群作业可能在一个指定的时间(日历调度),或者在特定事件发生(事件调度)时被调度运行。根据提交时间、资源节点、执行时间、内存、磁盘、作业类型及用户认证的优先级,作业被调度。静态优先级指的是