继中国TOP100发布之后,全球TOP500也随即新鲜出炉,整个HPC业界的排行榜再次被推上前台,并走向高潮:最新榜单上排名最后的系统在半年前的500强排行榜上位列第267位,且所有500强排行榜上的系统总体合并性能与半年前的每秒11.7千万亿次和一年前的6.97千万亿次相比,提高到了每秒16.95千万亿次——与半年前榜单的每秒9万亿次浮点计算能力的入门级别相比,本次榜单Linpack基准测试的入门级别被提高到了每秒12.64万亿次。
更令人感到高兴的是,由曙光公司研制生产并即将部署在上海超级计算中心的百万亿次高效能计算机–曙光5000A以峰值速度230万亿次、Linpack值180.6万亿次的成绩再次跻身世界超级计算机前十。这一成绩不但代表着中国将拥有除美国本土之外速度最快计算机的国家,同时上海超级算计中心也以此成为世界上最大的通用高性能计算平台。
但是在这一片浮华背后,却有一些让人不得不提到的伤心之处,尤其是对于安腾和Infiniband的效率之“伤”。
谁抛弃了安腾?
2005年,英特尔发布Motecito核心的双核安腾处理器,在LINPACK性能测评指标的测试中,4路双内核英特尔安腾架构系统的浮点性能超过了45 GFLOPs(gigaflops),在此之前,安腾架构屡次创造佳绩,2002前四路安腾架构系统的成绩是11.43 GFLOPs 2003年这个数字又达到了22.7 GFLOPs——在今年年初的英特尔春季开发者论坛(IDF)上,安腾解决方案联盟亚太地区委员会主席Eddie Toh向我保证,最新的Tukwila核心安腾处理器将再次超越之前的记录。
在Motecito突破记录之前,惠普方面曾在官方场合说了这样一句话:安腾并不只是适合高性能计算。并谈到,“安腾服务器在浮点运算方面非常出色,很自然地成为了高性能计算的理想选择。”
事情就是这么有趣,当我们翻看最新的TOP榜单时,如果按照处理器家族(Processor Family)来搜索,基于“Intel IA-64”的高性能计算机只有9台,在此之前的2008年6月的TOP500中,这个数字还是16,我不想再往前深究,因为2007年11月的榜单上,这个数字是21,我们看到安腾的数量正在逐步减少,不知道到了下一期榜单中,这个数字会是多少呢?
于是,我们看到了两种鲜明的对比,在几年前人们将安腾奉为高性能计算的高山,“虽不能至,心向往之”但仍然“高山仰止,景行行止”,而现在,看起来人们对于用安腾进行高性能计算的热情已经逐步降低了,但问题是,这样的情形是说明了x86架构的进步还是安腾的倒退,抑或有些我们没有看到的问题?
忽视效率伤了安腾
对于安腾进行高性能计算的问题,中国的TOP100或许最能说明问题——谁让TOP500没有让我找到“效率”这一栏呢?
在前不久发布的2007-2008高性能计算TOP100榜单中,效率一栏引起了我的注意,虽然IBM部署在中国石油化工股份有限公司胜利油田物探研究院的高性能计算机以“18600”和“38223.9”的Linpack值/峰值成为了过去一年中国部署的高性能计算机的领域的性能翘楚,但是其效率仅仅为0.487——我对朋友笑谈,胜利油田物探研究院看起来白花了一堆冤枉钱,当然,这是与另一组数据比较而来的。
在整个TOP100的榜单中,有两种特性几乎标志了一台高性能计算机的效率的表现,其中之一就是安腾,在榜单中,无论系统采用何种连接方法,基于安腾的HPC的效率几乎都维持在0.7以上,而且还有的达到了0.9以上(当然,我们此处并未与其它任何处理器相比较,因为架构和设计原因,我们很难去对等的评价两台或两种不同架构的HPC的效率问题出在哪里。)
对于安腾是否容易用作HPC的问题,在前不久我刚刚问过安腾联盟中国区主席同时也是SGI大中国区市场和渠道总监的张玲玲女士,她当时谈到,对于安腾来说其运算效率与稳定性同等重要,而效率对于HPC来说尤为重要,从目前的业务系统表现来看,安腾的效率之高是有目共睹的——我同时又提出了另一个问题:安腾的软件环境适合HPC?
一问出口我就觉得有些后悔,因为在此之前Eddie才给我们普及过安腾联盟最新的软件进展情况,尤其是Java的加入让许多问题几乎没有什么回答的必要——再回过头来看TOP100:安腾部署在了包括中国移动、南京大学超算中心、九城游戏、中国气象局国家卫星气象中心以及厦门大学等多个应用领域中,等等,我竟然在里面看到了九城,这难道不说明问题?——不要再抓着IA64或是安腾架构说事,已经听得太多了。
但安腾绝不是忽视效率关注Linpack的唯一牺牲品,与它同样受到冷落的,还有Infiniband。
我们还忽视了什么?“高高在上”的Linpack
事实上,在我刚刚写完上面这个标题时,有朋友转给了我一篇文章,作者是我的一个朋友,他对TOP500发出的质疑让我心中一喜:看来与我在Infiniband上有同样想法的还有别人——他的题目是:我们还应该相信高性能计算TOP500吗?其实这个问题是个老生常谈的问题:Linpack值是否值得我们继续信任下去。
国外IT记者GARY ANTHES在9月份采访美国国家大气研究中心(NCAR)超级计算机研究主任Richard Loft后撰文指出,高性能计算的问题已经不再是那些Linpack值,因为从目前的数据上来看,大量的HPC系统的Linpack值都抬升的很高,但是实际上像Richard Loft这样的最终用户却并未感受到什么真正的裨益,而且由于系统的成本越来越高,他们的花费也越来越高——往往是花了一倍的钱,才多获得了不到一半的实际性能提升。
在Gary Anthes的文章中,他曾经谈到,采访对象Richard Loft打趣的说:“Top500的列表对于告诉你一台计算机能力的绝对上限值非常有用,而在告诉你计算机使用中真正科学计算方面的能力则是用处不大的。” 问题就是Top500的列表实际上是由具有几十年历史的Linpack指标来决定的。而Linpack是由Fortran代码写成,并且用于测量处理器浮点算数运算的速度——比如,两个十进制长整形数相乘。因此,Linpack指标并不能给出一个应用程序的整体性能,尤其是那些做了很多处理器之间交互或者内存访问的应用程序。
问题的复杂性还远远超过于此:在实际应用中高性能计算仍然使用较低效率的串行算法,而非彻底的并行处理是造成问题的其中一个方面,同时,问题还出现于处理器的内存访问和对节点内部的I/O访问机制的瓶颈之上,目前,业界正在逐步改进问题,在2007年的IDF上英特尔披露了一项加速器计划,作为改善加速器连接的Geneseo架构,将能够减少软件开销、简化并增强操作系统支持以及减少硬件开销,同时,作为增强PCI-Express的下一代I/O设备架构,Geneseo架构未来的应用将首先进入Clearspeed、DRC、高性能计算应用等领域,因其在海量的数据运算、低延时的实时响应、固定算法功能领域的出色性能,数学密集型事务处理、可视化和媒体处理以及嵌入式内容处理领域都将是Geneseo架构的用武之地。
而与此同时,IBM也在紧锣密鼓的加紧对处理器访问内存瓶颈问题上的改进,但我们是否有一种能够加快改变HPC效率的方法?
Infiniband:忽视效率不止伤了安腾
事实上,在这个问题中我曾经有些迷茫,因此在之前的文章《TOP500揭幕 InfiniBand将落幕?》中并不肯定的提到:
“我们能够发现,HPC正在朝着通用化的方向发展,而以太网恰好是一种最为通用的技术,或者说是门槛最低的技术,因此,会有大量的用户喜欢去使用它,尤其是当以太网的表现并不比InfiniBand差的时候。但是,下结论或许还为时过早。”
并由此提出“我们很想知道,是否已经有足够多的人明白,InfiniBand将会和以太网相融合,而这与FCoE的出现将有异曲同工之妙,那就是:未来的网络将走向融合。”
对于以太网和Infiniband谁能够称霸HPC的问题上我有些犹豫,并由此对这两种技术谁是更好的HPC解决方案表示了质疑,而现在,或许我们能够根据TOP100做些推断——感谢TOP100的制定者们贴心的加上了效率一项评价标准。
在中国TOP100上,几乎所有采用Infiniband连通解决方案的至强集群的效率都超过了0.7,且有相当一部分达到或超过了0.75,更有甚者达到了0.8以上——虽然TOP500上Infiniband的数量有所增加,但是当我想到在TOP500之外的那些计算机群的拥有者们更加倾向于使用以太网时,担心就油然而生。
事实上,在国内的TOP100中,Infiniband的采用数量十分有限,且在大量的采访中,诸多国内用户正逐步成为以太网的拥趸,或者说,正忽视他们“忽视Infiniband所带来的效率问题。”而TOP500上自2007年11月-2008年6月-2008年11月榜单的121-134-141的缓慢变化,也从侧面证明大量的用户并未重视到问题的根源,不得不关注的是,采用千兆以太网(GbE)的HPC系统最高的排名为第79名。
正如我们前面所说,内部互联的重要性绝不亚于内存访问和整个I/O效率的重要性,对于实际操作中的许多应用来说,系统内部的互联带宽要比单纯的浮点运算性能重要得多,大量的高性能计算项目都需要进行跨矩阵的计算,而当大量的节点需要进行数据交换时,带宽往往不是瓶颈所在,问题在于接入速度、数据传输效率和传输延时。
对此,匹兹堡超级计算中心的特殊项目总监Jim Kasdorf认为在高性能计算领域我们必须要重新认识InfiniBand,尤其是从技术上来讲,远程直接内存存取(Remote Direct Memory Access,简称RDMA)和传输卸载(transport offload)。为Infiniband带来了极大的优势——RDMA对于集群来说很适合,因为它可以通过一个虚拟的寻址方案,让服务器知道和使用其他服务器的部分内存,无需涉及操作系统的内核;而传输卸载把数据包路由从OS转到芯片级,节省了处理器的处理负担。要是在OS中处理10 Gbps的传输速度的数据,就需要80GHz处理器,这二者减少了大量的减轻CPU的协议消耗。
尤其是别忘了Infiniband的低延迟,最低能够达到4.5us,这是一个多么令人欣喜的数据。
对于Linpack来说,人们对它的关注和以此作为“炫耀”或进入TOPXXX的谈资,令其身价倍增,在唯频率论之后,唯Linpack论占据了HPC的大片河山,随着人们拼命的在追逐Linpack在追逐TOP500的荣耀,越来越多的迷雾覆盖了我们的双眼。在我看来,Infiniband和安腾被Linpack重重的伤害了,无论是Eddie Toh、Gary Anthes、Richard Loft还是张玲玲、Jim Kasdorf都认为,效率应成为HPC的第一位考虑要素,而不应单单以Linpack为基准——“从实际出发”或许是对这个话题的最好结语。
受伤的安腾与Infiniband,仅仅是我们对我们忽视效率问题的一个小小的提醒,更多的提醒,或许会来自采购成本、高昂的系统运行及冷却费用以及眼看已经摆不下机柜的数据中心机房——这些都会由CFO向你说明的。