高性能计算与IA架构:高性能计算的演变史

高性能计算到底有多火?在过去几年,TOP500榜单几乎没有一个“状元”能够连续两次登上排行榜的榜首,无论是曙光5000A、6000A,还是天河1号、天河-1A,中国国内几乎每年都有新的高性能计算系统进入TOP500排行榜,而天津超算中心、广州超算中心等等建成后将成为世界一流的高性能计算中心,几乎每年都会抛出令人瞠目结舌的高性能计算集群建设计划。

高性能计算到底有多大规模?在2011年年底的全球高性能计算TOP500榜单上,高性能计算机所拥有的处理器内核数目已经达到10万的数量级——17台大型高性能计算机都拥有10万个以上的处理器内核,中国设计、制造的天河-1A在榜单中位列第二,使用了6144颗英特尔至强处理器,是一个当之无愧的X86高性能计算巨无霸。

高性能计算到底有多重要?目前来看,几乎各行各业都与高性能计算多少有些联系,在生物制药、科学研究、气象预测、地震预警、工业设计、能源勘探等等方面,高性能计算都是不可或缺的工具——甚至在2012年F1大奖赛上,我们还会看到戴尔的高性能计算系统对F1凯特汉姆车队的赛车设计方面所提供的强大帮助。

高性能计算在过去的十几年中,因为全球社会、经济和科技的高速发展,不仅自身获得了非常大的进步,其也带来了各行各业利用IT技术获得高速发展的契机,可以说,社会、经济的不断发展一方面促进了高性能计算系统的发展,另一方面,高性能计算技术也服务于社会每个角落里面的用户,去解决原本可能需要上百、成千甚至更长小时时间有需要解决的问题。

事实上,近年来的全球高性能计算机排行榜TOP500显示,X86服务器已经成为高性能计算机的绝大多数之选,超过90%的高性能计算系统全部或是部分采用X86架构处理器,而英特尔架构X86处理器更是达到了接近80%的市场份额。但高性能计算系统并不是一蹴而就的,高性能计算系统经过了十几年的发展才在今天形成了X86占据绝对优势的市场格局,将RISC架构的高性能计算系统“排挤到很小的特定市场范围中去。”

过去十几年,高性能计算系统是如何发展的,经历了哪些比较大的变革?为何X86处理器会成为高性能计算领域发展最快处理器?为何在短短十年间,X86取代RISC架构占据了高性能计算系统的主流架构?为什么说以英特尔至强为代表的X86架构处理器是高性能计算的未来之所在?这一切,还要从高性能计算系统十余年的变迁历史说起。

在一个以性能为王的领域,如果想建立其他游戏规则似乎并不容易。然而,对于高性能计算来说,随着其形象逐渐走下神坛以及商业化的驱动,让人们看到这样的玩法并非铁板一块。

传统意义上,集群已经构建好,可以执行程序之后,接下来需要了解这些程序的执行速度到底有多快,才用了著名的LINPACK 基准测试,这个标准叱咤高性能计算几十年,尽管有很多人认为其无法完全考量一套高性能计算系统的全面指标,但仍然是高性能计算业界最重要的一项评估标准。

但是随着社会对超级计算机的依赖程度的加深,超级计算机的构建模式和方法正在发生变化,从最早的并行计算到如今集群占主流,从RISC架构一统天下,到X86架构成为高性能计算的绝对统治者,在过去的二十多年间,高性能计算市场发生了翻天覆地的变化。

特别是近几年X86技术的日新月异,更让这种可能正逐渐变成现实。必须承认,当到底是RISC还是X86、传统架构还是集群架构更适合高性能计算的争论甚嚣尘上的时候,从全球高性能计算的市场份额上我们就能略窥一二。

这种类似“农村包围城市”的变化预示着高性能计算的未来,也为像英特尔这样的X86架构处理器厂商提供了越来越多元化的发展方向,更让高性能计算以及在这一领域里的玩家们发生着深刻的趋势变革和角色转换。

从过去二十年的经验来看,高性能计算随着业界对标准化、开放化的需求,以及大规模构建、可复用及快速部署的迫切性的加深,呈现了两大演变趋势:一是从传统的、封闭的RISC架构,走向开放的、标准化的X86架构;另一个是从传统的并行计算多种方式——如大规模并行系统(MPP)、共享存储多向量处理系统(SMP)和分布式共享存储系统(DSM)等——走向集群技术,以集群(Cluster)技术来实现大规模的高性能计算系统。

高性能计算的演变史之一:从RISC到X86

从RISC架构在高性能计算领域“高处不胜寒”到X86为主的高性能计算系统架构占据九成,这一切,只发生在短短十年间。

25年前,大型昂贵的定制化超级计算机主导了高性能计算服务器市场,2002年开始,基于标准的集群架构开始快速增长,2009年,基于标准化的集群架构以86亿美元占据64%的市场份额,成为高性能计算服务器市场的独秀。据IDC预测,基于标准化集群架构的市场将在2014年超过100亿美元。

也许还有人记得,一台名为“蓝色基因”的高性能计算机和国际象棋棋王卡斯帕罗夫的两次精彩对弈;也许还有人记得,我国国产高性能计算系统“银河”(那时候还叫做巨型机)在新闻联播上展现的辉煌;也许还会有人记得,当国产曙光5000A、天河一号高性能计算系统在TOP500全球性能排行榜上为我国高性能计算领域所带来的荣耀——但不知是否有人记得,当蓝色基因和国产银河巨型机在高性能计算市场叱咤风云的时代,是谁在背后拥有无限荣耀,而当曙光5000A和天河一号成为TOP500常客的时候,又是谁成为了新的高性能计算系统核心?

翻开历史,在高性能计算领域的发展过程中,以RISC架构为主导的小型机曾经称霸高性能计算市场——RISC架构曾经独舞高性能计算,尤其是在20世纪90年代到21世纪的前几年里,无论是MPP还是SMP架构,RISC架构是绝对的王者,当时,绝大多数高性能应用需要SMP并行共享式内存,或是针对MPP或是SMP架构进行优化,这在一定程度上极大的稳固着RISC架构处理器在高性能计算领域的地位。

从TOP500上来看,早在2000年6月,X86芯片在TOP500中的份额还不到1%,几乎所有的高性能计算系统都是基于RISC架构的POWER、SPARC或是Alpha处理器的,如果当时有人宣称将以X86架构的高性能计算系统冲击TOP500的话,简直是天方夜谭和痴人说梦。

但是,格局却在短短几年间出现了戏剧性的变化——或许让人始料不及,或许有些人已经有所准备:2008年11月,TOP500榜单再度公布,在一步步的吞噬了RISC架构的市场之后,当期的榜单中,X86架构的份额已经达到了85.8%,仅英特尔的至强处理器就达到了73.8%,非X86芯片阵营仅留下IBM Power一颗硕果,其份额为12%。弹指十年间,以英特尔为代表的X86芯片从当初的名不见经传变成了影响市场格局的霸主,一步步地将PA-RISC、Alpha、MIPS等挤出了这个计算机领域的高端俱乐部。

而在2011年下半年的榜单中,除了几套面向传统RISC架构应用的系统,我们更是难觅RISC的身影。英特尔不仅占据了接近80%的高性能计算系统,所有新晋上榜系统中,基于英特尔处理器的系统数量所占比例为近85%,英特尔至强处理器5600系列则是上榜系统使用率排名第一的处理器,足足有223套系统是基于它构建。而仅仅处于合作伙伴测试阶段的英特尔至强处理器E5处理器,更是首次在榜单中亮相,共有10套上榜系统采用它,并以每个处理器插槽输出152GFLOPS(每秒十亿次浮点运算)的性能和91%的效率刷新了排行榜的相关记录。

究其原因,这跟X86芯片“开放标准化、高性价比、新品不断”有关,也和RISC阵营自身竞争恶化、产品青黄不接、封闭自锁有关。经过这么多年的发展,随着HP Alpha和PA-RISC的相继停产以及今年SUN被Oracle收购,这块市场似乎已经演变成了以英特尔为代表的X86阵营的叱咤风云的游戏。

戴尔(中国)有限公司公共事业部教育行业总经理卢颂勤曾经向媒体表示,前期的超级计算机之所以逐渐被许多用户抛弃,封闭性是一个很大的原因,因为封闭对用户来说是很不利的,因此,X86与集群时代才会如此快的到来。

卢颂勤认为,这也是为什么戴尔致力于联合业内领先的合作伙伴一起在中国打造一个完整的解决方案生态系统,为客户提供开放、性能出色和高性价比的解决方案的深层次原因——其合作伙伴有英特尔、AMD等硬件公司,也有开放式管理软件如Platform,以及微软等,用户可以根据自己需求和喜好选择适合自己的厂商。

而这也成就了戴尔在高性能计算市场的迅速成长——只有顺应潮流才能持续领先——X86时代的高性能计算,不再是一个“高定制化的超级计算机占主导地位的年代”,高性能计算市场的竞争力主要体现在封闭性独家技术和低产量的定制,这对于以高产量、标准化、可靠性为主要需求的用户来说显然有些不利。然而,X86架构的兴起,为用户在高性能计算市场的获得更好的产品提供了一个大好的时机,戴尔也很明智地抓住了这次机会,低调地成了世界最大的高性能计算系统供应商之一。

高性能计算的演变史之二:走向集群

高性能计算机传统上指的是运行速度非常快的计算机,在一定意义上等同于超级计算机,致力于专业用户进行大规模科学和工程计算,追求的性能指标是浮点计算能力。随着对于高性能计算的应用需求由处理器运算密集型的科学和工程计算拓展到I/O处理密集型的商业事务处理,高性能计算机从单纯追求处理器运算能力变为追求包括I/O处理能力在内的综合性能指标,而且随着用户群体的扩大、对价格的日趋敏感以及工业标准服务器和互连网络等技术的成熟,高性能计算机已经倾向走产业化发展道路。

在谈到高性能计算向集群的发展时,我们有必要先来回顾一下从20世纪70年代到集群成为主流的过程——从1960年开始,计算机技术逐渐成熟,在各种商业领域慢慢地开始采用电子计算机,而且应用范围也越来越广,逐渐出现了针对各种不同商业用途的计算机,被称为“通用计算机”。相对于“通用计算机”,具有性能和功能上的优势的一类计算机被称为“高性能计算机”,在当时主要用于科学计算。

20世纪70年代出现的向量计算机可以看作是第一代的高性能计算机。通过在计算机中加入向量流水部件,可以大大提高科学计算中向量运算的速度。到80年代,出现了并行向量多处理机(PVP),依靠并行处理,进一步提高运算速度。向量机成为当时高性能计算机的主流产品,占领了高性能计算机90%的市场。

在20世纪90年代成为主流的对称多处理SMP系统,是由数目相对较少的微处理器共享物理内存和i/o总线形成的计算机系统(国内最早基于微处理器的SMP为曙光1号)和MPP相比,早期的SMP扩展能力有限,并不具有很强的计算能力。但由于SMP与单机系统兼容性好,是单机系统的升级与增强,被广泛应用于商业计算领域。

事实上,随着高性能计算的普及,SMP架构的高性能计算系统在20世纪90年代到21世纪初期,一直在市场上占据主流地位。但是成也萧何败萧何,SMP的特点令其成为主流,但其架构上的特点,也制约了其在更大规模的高性能计算系统的建设上的发展潜力。

在非对称多处理系统中,任务和资源由不同处理器进行管理,有的CPU只处理I/O,有的CPU只处理操作系统的提交任务,显然非对称多处理系统是不能实现负载均衡的。在对称多处理系统中,系统资源被系统中所有CPU共享,工作负载能够均匀地分配到所有可用处理器之上。大多数SMP系统的CPU是通过共享系统总线来存取数据,实现对称多处理的。如某些RISC服务器厂商使用Crossbar或Switch方式连接多个CPU,虽然性能和可扩展性优于Intel架构,但SMP的扩展性仍有限。

在SMP系统中增加更多处理器的难点是系统不得不消耗资源来支持处理器抢占内存,以及内存同步两个主要问题。抢占内存是指当多个处理器共同访问内存中的 数据时,它们并不能同时去读写数据,虽然一个CPU正读一段数据时,其他CPU可以读这段数据,但当一个CPU正在修改某段数据时,该CPU将会锁定这段 数据,其他CPU要操作这段数据就必须等待。

显然,CPU越多,这样的等待问题就越严重,系统性能不仅无法提升,甚至下降。为了 尽可能地增加更多的CPU,现在的SMP系统基本上都采用增大服务器Cache容量的方法来减少抢占内存问题,因为Cache是CPU的“本地内存”,它 与CPU之间的数据交换速度远远高于内存总线速度。又由于Cache支持不共享,这样就不会出现多个CPU抢占同一段内存资源的问题了,许多数据操作就可 以在CPU内置的Cache或CPU外置的Cache中顺利完成。

然而,Cache的作用虽然解决了SMP系统中的抢占内存问 题,但又引起了另一个较难解决的所谓“内存同步”问题。在SMP系统中,各CPU通过Cache访问内存数据时,要求系统必须经常保持内存中的数据与 Cache中的数据一致,若Cache的内容更新了,内存中的内容也应该相应更新,否则就会影响系统数据的一致性。由于每次更新都需要占用CPU,还要锁 定内存中被更新的字段,而且更新频率过高又必然影响系统性能,更新间隔过长也有可能导致因交叉读写而引起数据错误,因此,SMP的更新算法十分重要。目前 的SMP系统多采用侦听算法来保证CPU Cache中的数据与内存保持一致。Cache越大,抢占内存再现的概率就越小,同时由于Cache的数据传输速度高,Cache的增大还提高了CPU的 运算效率,但系统保持内存同步的难度也很大。

20世纪90年代初期,大规模并行处理(massively parallel processor,MPP)系统开始成为高性能计算机发展的主流。MPP模式是一种分布式存储器模式,能够将更多的处理器纳入一个系统的存储器。MPP体系结构对硬件开发商颇具吸引力,因为它们出现的问题比较容易解决,开发成本比较低。由于没有硬件支持共享内存或高速缓存一致性的问题,所以比较容易实现大量处理器的连接。

MPP系统的优势在于其进行大规模系统的部署,我们看到,在TOP500的榜单中(2011年上半年)采用MPP结构的系统有6台——Cray“美洲豹”和“海怪”、三台IBM蓝色基因机器、SGI“昴宿星”;采用Cluster结构的机器有4台——曙光“星云”、IBM “走鹃”、国防科大“天河”、Oracle的 “红色天空”。

但是,MPP系统的问题在于,其构建成本高昂,多数采用专有连接技术,对于高性能计算的应用者来说:MPP架构复杂、昂贵,可谓是高性能计算的阳春白雪。

由此,集群技术才能在高性能计算中占据超过90%的装机数量。集群系统是一组相互独立的计算机,利用高速通信网络组成一个单一的计算机系统,并以单 一系统的模式加以管理。其出发点是提供高可靠性、可扩充性和抗灾难性。一个集群包含多台拥有共享数据存储空间的服务器,各服务器通过内部局域网相互通信。 当一台服务器发生故障时,它所运行的应用程序将由其他服务器自动接管。在大多数模式下,集群中所有的计算机拥有一个共同的名称,集群内的任一系统上运行的 服务都可被所有的网络客户使用。采用集群系统通常是为了提高系统的稳定性和网络中心的数据处理能力及服务能力。

事实上,可以说正是集群技术让高性能计算告别了阳春白雪,集群可以通过负载均衡、并行处理、时间片处理等多种形式,将多台计算机形成高性能集群。对用户端(Client)而言,集群则是一个单一的系统,可以为用户提供高性能的计算机系统,而用户不用关心有多少计算机承担了系统实现的任务,而只需要关注系统的整体处理能力。因此,集群可以用多台普通性能的计算机组成具有高性能的计算机系统,承担只有超级计算机才能胜任的工作。

在系统的处理能力需要增加的时候,除了通过增加集群中每个计算机节点的单机处理能力(如通过增加CPU数量、增加内存大小等手段)外,还可以通过增加集群节点数,即通过向群集添加新的计算机节点,使服务随着处理器的添加而伸缩,从而增大应用程序吞吐量,以达到增加系统的整体处理能力的目的,完成系统的扩容。

集群技术的发展与英特尔X86处理器在高性能计算上的发展是密不可分的,正是X86与集群技术的结合,才能够让集群实现更低成本的性能——依靠英特尔X86处理器的性能不断提升——每年都能实现40%以上的提升,而X86平台本身的开放性和标准性,让高性能计算系统的软件开发变得更加容易,开发成本也更低。除此以外,我们要看到的一个趋势是,集群系统因为X86平台而更容易搭建,其建设时间和复杂程度都是原有的MPP系统所不能比拟的。

以戴尔为例,一直以来,戴尔都是唯一坚持在集群高性能计算系统上的供应商,戴尔基于英特尔的X86处理器,不断构建基于集群和标准的以太网互联技术的高性能计算——或者说,这是一种更加普及化、大众化的成本可接受的高性能计算系统。这一方面体现了戴尔在高性能计算系统上的发展思路——坚持标准化与开放化,另一方面,也体现了戴尔在高性能计算系统应用上的思路:高性能计算系统是为了LINPACK数值而做,还是为了应用而做?——戴尔的答案,是为了普及化的应用而做,而不是为了去“摘取阳春白雪的王冠上的明珠”。

也由此,致力于设计开放、性能出色及高性价比的解决方案的戴尔,戴尔一直在高性能计算领域处于世界领先地位,并为客户带来更大的灵活性、更高价值及更便捷的业务运营。戴尔在部署及交付高性能计算C方案上的优势,体现在包括石油天然气、可再生能源、航空、医疗、学术机构、金融及制造业等在内的多个行业。2010年,戴尔成功为香港大学设计了高性能计算集群(High-Performance Computing Cluster,简称高性能计算C),该系统专为先进的计算密集型学术研究而打造,适用于化学、物理、工程、环境及纳米技术等研究。该高性能计算集群同时也是中国国家网格 (China National Grid,简称 CNGrid) 的一部分,是中国大陆地区以外唯一的网格节点。

此次部署的高性能计算C,配备有计算能力高达每秒19.43万亿次浮点计算(Teraflops)的240节点戴尔 PowerEdge M610及R610服务器,由1,920枚英特尔Nehalem处理器驱动,其中包含12台PowerEdge M1000e及192台M610刀片服务器;55台PowerEdge R610及三台R710服务器,全部储存在六台4220 42U服务器机架内。数据储存在两台PowerVault MD1000 DAS阵列上,可在需要更多存储空间时实现无缝扩容。该集群的高速互连包括Qlogic 9040 DDR 无限频宽通讯交换机、Mellanox M2401G DDR无限频宽通讯交换机以及戴尔PowerConnect交换机,均有助于将集群及网格计算互连性能提升至最高水平,同时简化数据中心并降低成本。

在集群架构兴起的时代,高性能计算的市场特征主要表现为两个方面:一方面,许多大型的高性能计算用户将会不断扩大其高性能计算集群以满足计算的需求;另一方面,高性能计算集群的兴起让高性能计算的发展日趋平民化,高性能计算不再是政府和研究机构的专利,许多中小型的组织也可以开始使用,例如许多高校的一些院系和实验室都开始使用高性能计算进行学科的研究——高性能计算借助X86与集群技术,成为了通用的、标准化的、开放的技术,而非封闭的、昂贵与复杂的高性能计算系统,这无论是对于IT技术来说,还是对于社会发展来说,都带来了极大的裨益。