Rocks Cluster助HPC高性能计算机集群在科研计算应用
简单的说,集群(cluster)就是一组计算机,它们作为一个整体向用户提供一组网络资源。这些单个的计算机系统就是集群的节点(node)。一个理想的集群是,用户从来不会意识到集群系统底层的节点,在他/她们看来,集群是一个系统,而非多个计算机系统。并且集群系统的管理员可以随意增加和删改集群系统的节点。
集群并不是一个全新的概念,其实早在七十年代计算机厂商和研究机构就开始了对集群系统的研究和开发。由于主要用于科学工程计算,所以这些系统并不为大家所熟知。直到Linux集群的出现,集群的概念才得以广为传播。
对集群的研究起源于集群系统的良好的性能可扩展性(scalability)。提高CPU主频和总线带宽是最初提供计算机性能的主要手段。但是这一手段对系统性能的提供是有限的。接着人们通过增加CPU个数和内存容量来提高性能,于是出现了向量机、对称多处理机(SMP)等。但是当CPU的个数超过某一阈值,象SMP这些多处理机系统的可扩展性就变得极差。主要瓶颈在于CPU访问内存的带宽并不能随着CPU个数的增加而有效增长。与SMP相反,集群系统的性能随着CPU个数的增加几乎是线性变化的。
集群系统的优点并不仅在于此,下面列举了集群系统的主要优点:
高可扩展性:如上所述。
高可用性:集群中的一个节点失效,它的任务可以传递给其他节点,可以有效防止单点失效。
高性能:负载平衡集群允许系统同时接入更多的用户。
高性价比:可以采用廉价的符合工业标准的硬件构造高性能的系统。
2、高性能计算机集群简介
简单的说,高性能计算(High-Performance Computing)是计算机科学的一个分支,它致力于开发超级计算机,研究并行算法和开发相关软件。高性能计算主要应用于如下两类问题的研究。
*大规模科学问题,像天气预报、地形分析和生物制药等
*存储和处理海量数据,像数据挖掘、图象处理和基因测序
顾名思义,高性能集群就是采用集群技术来研究高性能计算。
影响高性能计算机系统分类的因素有很多,所以从不同的分类标准得出的高性能集群计算机的系统架构也各不相同。但如果考虑到采用大规模生产的商用计算机和同样是大规模生产的商用LAN及ATM网络来制造的话,主要都是如下两种架构。
目前,主流的PC服务器一般含有一到四个处理器,在一个操作系统的控制下,共同存取一个唯一的内存地址空间。各处理器在内存的存取上是平等的,存取代价是相同的。所以这种系统叫做一致内存存取系统,或叫SMP(对称多处理计算机系统)系统。在这个系统中,处理器是以系统总线、交叉开关或其它专有网络与内存连接在一起。
SMP系统的最大特点是:一方面,系统架构及共享内存的编程模式的相对简单,所以制造和应用成本很少,为广大中小企业所喜爱。这是我们用于构建集群节点的主要原因。另一方面,它的可拓展性相对较差,一般如果处理器的数量超过四个,那它的制造成本就会变得相当可观。这就制约了它的进一步的发展。
但是业界为了弥补这种不足,又推出了另外一种系统――分布式内存存取系统。它较之SMP系统的最大特点是没有一个统一的内存空间。这种系统的每一个处理器和它的内存空间构成一个独立的系统,由一个操作系统控制,可以独立运行。在这里我们叫它作节点,这些节点均使用它的网络接口连接到互连网络,并通过网络通信。
DM系统具有很多优秀的特点:
1、系统的可拓展性强。拓展成本低,无需使用专用的计算机及定制的网络设备;各个节点可采用通用的LAN或ATM网络连接,技术难度低。
2、可使用成熟通用的LINUX操作系统作为软件平台。
3、大量成熟而各具特色的集群软件,如ROCKS CLUSTERS、OPENMOSIX、OSCAR等。
在方案中,我们使用主流的SMP系统作为集群的节点,互连网络也使用类似Myrinet的高速网,我们把这种系统叫作SMP集群。这种集群可以使用MPI+OPENMP的混合编程模式。在这种模式下,节点内的处理器利用共享内存进行通信,位于不同的节点的处理器在节点之间利用信息传递机制进行通信。这种混合编程模式充分利用了内存共享和信息传递机制的特点,被公认为是最有效的编程模式。 #p#page_title#e#
3、集群软件介绍
基于分布式运算的观点,在此方案中我们推荐使用ROCKS CLUSTERS,一个NPACI(美国高级计算基础设施合作委员会)负责开发的集群系统。ROCKS CLUSTERS以性能优秀、成熟和稳定的REDHAT ADVANSCE SERVER为开发基础,完全按照我们所介绍的SMP集群的分布式架构进行开发。在软件方面也是由FRONTEND(管理节点)加NODE(计算节点)组成。作为业界最出色的集群操作系统,具有相当多的优点:
在系统的安装、维护方面
ROCKS CLUSTERS在系统内集成大量的自动化脚本,并由于以REDHAT ADVANSCE SERVER为基础开发的,所以它在安装的时候会自动设置好NFS文件服务器、NIS服务、MPI并行环境及数学函数库,计算节点全部通过PXE网络系统从主节点下载文件并自动完成所有的安装与设置。这里体现的不是一个简单的功能整合,而是融合了开发小组对于软件与硬件方面的优化。ROCKS CLUSTERS对于故障节点的管理思想是,在硬件修复完成后,此节点只需接入集群网络即会自动完成文件的下载与安装,无需人为干预。
计算任务的提交与管理
ROCKS CLUSTERS系统提供了一整套基于WEB的组件用于监控自身的活动及配置状况,如处理器使用数量、内存及交换分区使用情况、网络负载、节点状态和当前计算任务的进展。当然也有第三方厂商为ROCKS开发的任务管理系统如SGE(SUNGRIDENGINE)。
丰富的应用软件
ROCKS CLUSTERS的优秀也体现在有强大的第三方的软件支持。首先有来自最球最大的处理器生产商的大力支持,专为CLUSTER高性能计算开发的一系列套件:intelmpi并行环境、intelmkl数学函数库、TOTALVIEW、MPIDEBUG工具等。其次有性能最为优秀的GOTO数学函数库;最后有大量的科学计算方面的开源软件。所有这些优秀的软件都采用了简单安装方式-----用户只会感觉到在一台机器上处理它们。同时由于ROCKS CLUSTERS支持滚动升级的特性,在软件方面,当主节点完成升级后,只在主节点使用相当简单的指令就可以使计算节点在下一次重起后自动完成所有的升级工作;在集群规模扩展方面,所有需要加入的节点只要接入集群网络时打开PXE请求即可完成相关的安装工作;在系统软件方面,软件升级或功能扩展完全可以通过ROLLS或CLUSTER-FORK指令来完成安装,这些工作则由主节点集中完成,系统管理员无需为每一节点的庞大的配置工作而彼于奔命。
庞大的的开发团队
ROCKS CLUSTERS庞大的开发团队包括NPACI自身、SanDiegoSupercomputerCenter,UCSD(加利福尼亚圣迭戈分校超级计算机中心)、MillenniumGroupatUCBerkeley(位于加利福尼亚伯克利大学的开发团队)、ScalableSystemsPteLtdinSingapore(新加坡可升级系统有限公司以及OpenSCEinThailand(泰国开放式可升级集群开发环境)等。