关于超级计算与能力服务的战略思考内部刊物信息技术快报InformationTechnologyLetter2005年第3卷第1期(总第20期)出版日期:2005年1月6日目录一关于超级计算与能力服务的战略思考………………………(1)二面向方面(aspect)的程序设计方法……………………………(9)三本体论的研究和应用现状……………………………………(13)四基于图形处理器的通用计算技术……………………………(25)五新书报道……………………………………………………(36)第3卷第1期信息技术快报Vol.3.No.1InformationTechnologyLetterJan.2005关于超级计算与能力服务的战略思考李国杰近两年,超级计算机研究又一次形成热潮。2004年11月超级计算国际会议(SC2004)召开前,美国和日本几家公司你追我赶,相继宣布研制成功速度最快的超级计算机,从一个侧面反映了发达国家对超级计算的重视。最近,美国科学院、工程院等机构组织了十多名权威学者经多次研讨后,提交了一份长达227页的建议报告(“GettingUptoSpeedTheFutureofSupercomputing”,以下简称“未来超级计算”报告),要求政府增加科研经费,进一步重视以定制技术为主的超级计算机研制。在这种形势下,根据国内需求和技术发展趋势,我国高端计算机研究应当如何定位,应当确立什么样的发展目标,这是摆在我们面前迫切需要回答的问题。本文论述中国发展超级计算机原则上应当是系统适应应用,而不是应用去适应系统;应根据我国的实际需求优化设计,有重点地进行创新突破,不能盲目追随美国的科研方向。计算所在计算机系统研究方向的重点目标应当是研制大幅度降低信息化成本的信息处理和信息存储能力服务器。以“系统适应应用”为原则,有重点地突破技术瓶颈,发展满足国内需求的超级计算机。日本NEC公司推出每秒36万亿次Linpack运算速度的地球模拟器并行向量超级计算机,如同当年苏联率先发射成功人造卫星一样,对美国计算机界产生巨大冲击。美国从事超级计算机研制和应用的学者纷纷写文章、提建议,检讨美国为什么落后于日本,批评政府没有持续地支持研制适合科学计算的超级计算机。“未来超级计算”报告,透彻分析了为什么采用大宗商品化(commodity)的PC服务器不可能构成效率高的超级计算机,指出了突破存储器带宽等技术瓶颈的必要性,同时呼吁美国政府增加超级计算机研制与应用方面的科研投入,表达了美国要做超级计算领头羊的决心。本节下面的论述采用上述报告中提供的相关材料。1.超级计算机的三种类型。一年多前,计算所就提出超级计算机有三种类型,或者说有三种发展模式:一种是“核武器”模式--追求最高计算性能,成本不作为主要考虑因素;第二种是“高科技武器”模式--有重点的采用新技术,追求较高的性能价格比;第三种是“常规武器”模式--即国际上称为Beowulf1的机群模式,采用商品化的部件,主要追求低成本。无独有偶,“未来超级计算”报告也将超级计算分为三种类型,与我们的分类十分类似:第一种是全定制模式,11994年,美国航空航天总署的戈达德(Goddard)太空飞行中心的科技人员建造了世界上第一组PC机群超级计算机,当时的目标只是达到1G(10亿)次浮点运算(GFLOPS),只是现在个人电脑的运算水平。可是当时达到这一水平的商用超级计算机价格是100万美元,研究人员用不起,只好自己动手攒,他们给自己攒的这台PC机群起了个名字:Beowulf。Beowulf是英国中世纪史诗中的一位英雄,这位英雄砍断怪兽Grendel的一肢,从而打败了这一巨兽。从此以后,科学家们把自己攒的机群系统叫做Beowulf系统。关于超级计算与能力服务的战略思考追求最短的time-to-solution,节点与互联网都自己做,代表产品就是日本的地球模拟器。第二种是部分定制模式或叫混合模式,节点和互联网等部件都自己做一部分也买一些现成商品,代表产品是目前世界最快的超级计算机-IBM的BlueGene/L,第三种就是非定制机群,即CommodityCluster。实际上,超级计算机和汽车等其他产品一样有两种不同方向的追求。一种是所谓CapabilitySupercomputing,追求在最短的时间内解决某一个特定的问题。对于涉及国家安全的紧迫问题或者某些对响应时间要求很苛刻的实时应用,我们的需要就是最高的计算能力。为了获取这种无法替代的计算能力,如同制造速度最快的赛车一样,成本可降低为次要因素。世界上大多数最高档的超级计算机都属于这种类型。另一种类型国外称为CapacitySupercomputing,可翻译成高生产力超级计算机。这一类超级计算机往往同时进行几个作业,追求每单位成本有较高的持续性能(SustainedPerformance)。大多数中低档的超级计算机都属于这一类型。所谓Beowulf机群只是CapacitySupercomputing的一种追求低成本的极端例子,如同小轿车中的夏利。美国学术界和IBM、CRAY、SUN等公司普遍认为美国应重点做CapabilitySupercomputing,理由是地球模拟器持续性能可达到峰值性能的30-50%,而CommodityCluster做大型科学计算的持续性能只有峰值性能的5-10%,相差3-10倍。简单地扩大Cluster规模,不可能实现持续性能达到一千万亿次(Petaflops)的超级计算机。每一类科学问题都有其固有的并行性。在并行机上算过题的人都有体会:当并行机规模(处理机数目)扩大到一定程度时,再扩大机器规模已无济于事。性能不但不提高,由于通信开销增加性能反而会下降。此时想提高并行机性能只有增加求解问题的规模,这又受到存储容量的限制。因此,用商品化服务器做超级计算机一定会有一个性能上限。目前这个上限大概是几十万亿次。要构建更高性能的超级计算机,必须做艰苦的科研与技术创新,想用简单的Cluster来对付肯定是不行的。我国一段时间内把超级计算机等同于简单的机群系统,把超级计算机的科研变成简单的采购。863计划只出一半硬件成本费,科学院自曙光2000以后也没有支持过计算所做通用高性能计算机研制,使计算所几乎无法做重大的技术突破与预研。现在情况有所转变,最近科学院已同意给一笔高性能计算机的预研经费。本文不必再多费笔墨论证Beowulf不等于超级计算机。但上面的简单分析没有说清楚究竟重点应做第一种类型还是第二种类型超级计算机。要说清这件事要对超级计算机的技术瓶颈做一些具体分析。2.超级计算机的技术瓶颈分析超级计算机的技术瓶颈包括:处理器的浮点处理能力、处理器到各级Cache和随机存储器的带宽与延迟、随机存储器的存取时间(即memorywall)、磁盘存储器带宽、节点间互连网络带宽与延迟等。其中有些瓶颈与微机、一般服务器是共同的,例如memorywall、磁盘存储带宽等。对某些超级计算机应用,如等离子体物理、三维动画等,浮点处理能力可能是最关键的瓶颈。事实上所谓超标量(SuperScalar)和超流水线(Superpipelining)等先进的RISC技术主要也是致力于提高浮点处理能力。流行了很多年的Linpack性能测试标准(也是评价超级计算机TOP500的标准),主要也是测试浮点处理能力。由于对存储器带宽和I/O带宽重视不够,Linpack值很高的超级计算机往往在实际运行时性能欠佳。因此,SC2004大会上已宣布今后将不再用Linpack值评选TOP500,改用更能反映存储器与I/O带宽及延迟的HPCChallenge新标准。Princeton大学的著名学者李凯教授今年参加计算所综合质量评第3卷第1期信息技术快报Vol.3.No.1InformationTechnologyLetterJan.2005估时曾建议:不用通用CPU而改用浮点处理能力极强的图形处理专用芯片做超级计算机的处理器。这是一个很有价值的建议,可大大提高超级计算机的性能价格比。不论是最近提出的“未来超级计算报告”,还是前两年IBM、Argonne国家实验室等单位联合提出的BluePlanet计划;不论是IBM正在开展的PERCS2项目还是SUN公司的Hero项目,强调最多的超级计算机的瓶颈都是存储器带宽和延迟。日本的地球模拟器最吸引人之处也是比商品化服务器的存储带宽高得多。微处理器浮点处理能力的增长遵循摩尔(Moore)定律,近十几年平均每年增长59%,从1988年到2004年,浮点速度增长了1000倍。但从1982年到2004年,存储器带宽每年平均增长38%,从1995年开始,下降到每年只增长25%。存储器带宽增长慢并不是技术上做不到。实际上2001年微处理器的带宽就可以做到38Gbps。为什么不把存储器带宽提高得快一些呢?道理很简单,高带宽意味着高成本。PC服务器的存储器带宽目前一般在5GB/S以下,如果做到地球模拟器的每秒32GB水平,也就卖不出去了。商品化的服务器为了解决性能与成本的矛盾,采取了分层的存储器结构,即在处理器与主存储器之间加了几级缓冲存储器(Cache)。随着微处理器速度不断提高,有Cache级数越来越多的发展趋势。对于时间和空间局部性较好的应用,比如矩阵计算或带大量循环的计算,即使主存的带宽不太宽,分层的存储器系统也能供得上计算对数据的需要。但是,对于不规则的存取,比如单独取某一个只用一次的数据,Cache系统也要一次取64或128个字节,造成极大浪费(极限情况浪费94%存储带宽)。也就是说,这种情况下,存储器的有效带宽非常低。这就是为什么对某些有大量不规则存取的应用,Beowulf机群的实际运行效率非常低。而并行向量机则是通过高成本来换取高存储带宽。存储器的延迟每年也只下降5.5%左右,远低于摩尔(Moore)定律的发展速度。1988年一次浮点运算需要6个存取周期时间才能完成,而到2004年,一个存取周期内可以做100次浮点运算。这就是说,必须一次同时取出100个64位字才能与浮点处理器的能力相匹配。众所周知的MemoryWall已成为制约计算机(不仅是超级计算机)发展的主要瓶颈。除了向量处理技术外,多线程技术是所谓延迟隐藏(LatencyHiding)的重要途径。当一个线程因等待数据而挂起时,可立即启动另一个数据已经到达的线程,使处理器一直忙着。据预测,到2010年,一颗微处理器芯片中可装4-8个处理器,每个处理器可执行2-16条线程。到2020年,每颗微处理器芯片中可装64-128个处理器,每个处理器可执行16-128线程。这种片内多处理器(CMP)技术是微处理器技术发展的主要趋势,其优点之一就是大大减轻存储带宽的压力。节点间互连网络曾经是并行计算机研究最热门的方向。我在普度大学读博士时,H.J.Siegel教授每年都开“InterconnectionNetwork”这门博士生课程。在很长一段时间内,有关节点间互连网络的论文在并行处理和体系结构国际会议文集中占很大比例。现在国际上还有一种学术期刊叫“InterconnectionNetwork”,我还是这份国际期刊的编委。我国计算机界对一台新研制的超级计算机是否有创新,也特别注重互连网络是不是自己做的。对于至今超级计算机的CPU还要依靠进口的中国,以是否自己做互连网来区分第二种类型和第三种类型超级计算机似乎无可厚非。但不同于通信产业,计算机产业链的垂直分工已非常明显。近几年已冒出来一些专门做互连网络的公司,如美国的Myrinet公司等。尽管其产品的性能还低于最高档超级计算机的互连网络,但由于许多第三方并行软件开发商在Myrinet网络上开发、移植并行软件,使其软件逐渐丰富。有些用户(比如上海超级计算中心)为了获得更多应用软件与系统软件,坚持要买这种成熟的互连网络。这说明,不但用Commodity服务器有市场竞争力,2Productive,Easy-to-use,ReliableComputingSystem关于超级计算与能力服务的战略思考Commodity互连网络也有市场竞争力。由于互连网络公司能批量生