曙光信息产业(北京)有限公司技术支持中心总经理]现在,多年占据中高端商业计算平台王座的SMP技术,在性能和成本上都受到Cluster技术的挑战。但有趣的是,相对其他领域的技术更迭,集群与SMP之间并非简单的取代关系。
SMP的全称是“对称多处理”(Symmetrical Multi-Processing)技术,是指在一个计算机上汇集了一组处理器(多CPU),各CPU之间共享内存子系统以及总线结构。它是相对非对称多处理技术而言的、是应用十分广泛的并行技术。
在这种架构中,一台计算机不再由单个CPU组成,而是同时由多个处理器运行操作系统的单一复本,并共享内存和这台计算机的其他资源。虽然同时使用多个CPU,但是从管理的角度来看,它们的表现就像一个CPU一样,拥有一套操作系统,系统将任务队列对称地分布于多个CPU之上,从而极大地提高整个系统的数据处理能力。同时,所有的处理器都可以平等地访问内存、I/O和外部中断。
总的来说,在对称多处理系统中,系统资源被系统中所有CPU共享,工作负载能够均匀地分配到所有可用的处理器上。
SMP的优势与软肋
按照计算机架构来分,SMP系统包括RISC和CISC两大类产品,其中RISC类SMP系统常见的就是今天的小型机,如IBM pSeries等,其处理器规模涵盖4路到64路的范围。在CISC系统中我们接触的产品较为广泛,目前市场基于x86架构下的产品基本上采用SMP架构,如Intel至强和AMD皓龙等。
在x86架构中,我们平时所说的双路和四路系统,实际上是对称多处理系统中CISC的一种,全称应该是“双路对称多处理系统和四路对称多处理系统”,在专业应用中具有良好性能表现。
随着用户应用水平的提高,只使用单个处理器确实已经很难满足许多实际应用的需求,因而各服务器厂商纷纷通过采用对称多处理系统来解决这一矛盾。在国内市场上这类机型的处理器一般以4个或8个为主,有少数有16个处理器。
从SMP的系统架构来看,SMP最大的优势在于共享内存,对内存统一编址。但也正是这一点为SMP的发展带来很大障碍,因为共享内存资源必然引起资源冲突。换言之,要保持SMP系统从2路到64路的线性或接近于线性增长,其SMP架构下的系统总线、高速总线等同样需要线性增长。
如目前在双路CPU间实现6.4Gb/s交换带宽,要以同样在64个处理器间实现6.4Gb/s的互连需要263×6.4Gb/s的互连带宽,这无疑是个天文数字―未来数十年也难以实现。
不过仍有基于SMP 技术的64路产品,如IBM Power5+和HP Integrity就可以实现。其互连架构如上图,它实际上按照每4~8颗处理器为一组实现互连,然后实现每组间再互连,其规模也一般超过8组,最终实现32~128路的整体规模。因此,不难看出,SMP系统的扩展性相对较差,难以做到128个以上多处理器。
目前大型SMP系统主要存在四个瓶颈:首先是价格昂贵,单一系统动辄数万美元乃至数十万美元;其二是系统扩展性较差,单一系统最多128颗CPU;其三是存在技术瓶颈,单独依靠SMP难以提高计算机整体性能;其四是系统兼容性差,基本上不存在软、硬件的兼容性,每种系统自成体系,与其他产品难以兼容。
那么怎样才能在现有条件下实现计算机性能的大幅度提升呢?
集群 低成本的性能线性提升
近几年,集群的高速发展就是一个较为有效的解决办法。那什么是集群?集群系统(Cluster)是指利用网络(商用或专用)将商用计算机(主要是服务器)按照某种结构连接起来,在并行计算环境下支持统一调度的并行系统。或者可以简单理解为,集群系统是由一组互连的整机(节点机)构成的并行或分布系统,可作为统一的计算资源。
计算机集群系统允许使用低成本的商品化计算机来构造具有高可伸缩性和高可用性的高性能计算机网络系统,即今天所讲的集群系统。其性能通过数年的技术研究,已经逐渐接近甚至超越同时期同规模的大SMP系统。
实际上,计算机集群系统的实现得益于以下几个方面的技术进步。最重要的动力来自CPU技术的长足发展,尤其是双核及多核技术在x86系统的成功应用。像今天的AMD是成功借鉴了RISC设计思想开发出Opteron处理器,使得今天具有数万亿次运算能力、超大规模集群计算机成为了可能。
高速网络技术的发展也推动了集群技术。高速网络使得松散耦合系统之间的通讯能力大幅度提高(千兆以太网、Myrinet、InfiniBand等),带有处理能力的网络接口和新的通信机制有效降低了通信开销,提高了计算机效率。
其次,并行设计环境的开发日益成熟,让集群应用繁荣。多种可移植性并行程序环境成功进入了商业运行,如PVM、MPI等一批基于消息传递机制的并行程序环境可以运行在目前商业计算机系统平台上,为集群技术的普及奠定了基础。
计算机集群系统的发展,使得通过成熟的商业化产品组建的计算集群系统同时具备低价高性能成为可能。其组成部分主要包括节点机系统、网络系统、存储系统、控制系统、电源及散热系统等。如果从整体看,集群系统是大型SMP系统的每个子系统商业化独立发展的缩影,如大型SMP系统多采用RISC架构的处理器系统实现其计算功能,而在集群系统多采用基于x86架构的处理器系统,其规模由双路SMP系统发展到今天的多路SMP系统,其性能已经与基于RISC系统的处理性能抗衡。
集群系统的节点机本身就是一个经济型的SMP系统,具备SMP所具备的优点,并且具有得天独厚的价格优势。由于构建集群系统核心的节点机系统是依托开放的商业计算机系统,使得集群系统具备良好的扩展能力。如可以通过双路、四路SMP系统构造传统的集群系统,也可以通过8路及8路双核构造星群系统,通过并行系统的优化满足用户不断变化的应用需求。这种系统的存储系统和大型SMP系统一样,基于SAN架构的方式实现。其他像网络、电源及散热系统也一样,只不过采用分布式的设计思想而完成。
SMP与集群技术对比
SMP 集群
技术特点 单一OS,内存统一编址,多CPU共享内存及I/O 并行或分布式系统,通过一定方式互连,多OS,需并行文件系统优势 技术、应用均相对成熟 可扩展性良好,成本低廉软肋可扩展性较差,成本高 使用门槛较高,需要用户对并行环境下的应用优化有了解 未来 基于x86平台的SMP系统,将降低成本 采用SMP技术构造集群节点,将是大势所趋。
集群 融合SMP后取胜?
通过集群技术使我们获得超大规模计算能力成为可能,如曙光4000A超大规模集群系统的实现。如果单纯采用SMP构建同等规模的系统,如前所述,技术上的可能性不大;如果采用多组中型SMP系统构建同等规模系统,其价格远高于同类集群系统不说,其实质也与集群系统相同,并少了目前集群系统良好的兼容性。今天集群技术不断发展,也在不断融合大型SMP系统的技术,如曙光的TC1600刀片服务器系统就是将大型SMP系统融入到集群系统而形成的新一代集群系统。它与大型SMP系统一样拥有强大的处理能力,同样的系统可靠性设计,同样的系统可管理能力;与集群系统一样拥有高拓展能力以及灵活性。
从系统上来看,集群系统的发展受制于各自系统的发展,其子系统的平衡成为整体系统的关键。如8个节点16个处理器规模的传统集群系统因子系统的独立设计不一致性,导致了集群系统性价比下降。与此同时,基于x86的多路SMP系统性价比突出,具有传统集群系统的兼容性与扩展性,也具备大型SMP系统的系统整合能力,使得小规模的传统集群系统逐步让位于x86多路双核产品,预计在2007年将出现8路32核的x86 多路产品,将使这类产品的竞争力得到更大地提升。
在16~64颗处理器规模的系统中,这两者因其特点不同将占据不同的市场,在64颗处理器以上规模,基本上只能通过集群系统实现,依靠单一大SMP系统难以实现。
但随着技术不断发展,集群系统和大SMP系统也在不断变化。大SMP系统也通过集群系统技术实现超大规模计算机系统构建,实现其扩展能力与运算处理能力,集群系统也依托SMP技术,引入大型SMP系统设计理念实现其产品设计,两者呈现出很大的互补性。但总的趋势来看,经济高效的集群产品将逐渐成为高性能计算机的主流,其可靠性、可管理性将有很大增强。