关于超级计算与能力服务的战略思考

导语:

近两年,超级计算机研究又一次形成热潮。200411月超级计算国际会议(SC2004)召开前,美国和日本几家公司你追我赶,相继宣布研制成功速度最快的超级计算机,从一个侧面反映了发达国家对超级计算的重视。最近,美国科学院、工程院等机构组织了十多名权威学者经多次研讨后,提交了一份长达227页的建议报告(“Getting Up to Speed The Future of Supercomputing”,以下简称“未来超级计算”报告),要求政府增加科研经费,进一步重视以定制技术为主的超级计算机研制。在这种形势下,根据国内需求和技术发展趋势,我国高端计算机研究应当如何定位,应当确立什么样的发展目标,这是摆在我们面前迫切需要回答的问题。本文论述中国发展超级计算机原则上应当是系统适应应用,而不是应用去适应系统;应根据我国的实际需求优化设计,有重点地进行创新突破,不能盲目追随美国的科研方向。计算所在计算机系统研究方向的重点目标应当是研制大幅度降低信息化成本的信息处理和信息存储“能力服务器”。

 

关于超级计算与能力服务的战略思考

李国杰

 

 

2004年,日本NEC公司推出每秒36万亿次Linpack运算速度的地球模拟器并行向量超级计算机,如同当年苏联率先发射成功人造卫星一样,对美国计算机界产生巨大冲击。美国从事超级计算机研制和应用的学者纷纷写文章、提建议,检讨美国为什么落后于日本,批评政府没有持续地支持研制适合科学计算的超级计算机。“未来超级计算”报告,透彻分析了为什么采用大宗商品化(Commodity)的PC服务器不可能构成效率高的超级计算机,指出了突破存储器带宽等技术瓶颈的必要性,同时呼吁美国政府增加超级计算机研制与应用方面的科研投入,表达了美国要做超级计算领头羊的决心。本节下面的论述采用上述报告中提供的相关材料。

1.     超级计算机的三种类型。

一年多前,计算所就提出超级计算机有三种类型,或者说有三种发展模式:一种是“核武器”模式——-追求最高计算性能,成本不作为主要考虑因素;第二种是“高科技武器”模式——有重点的采用新技术,追求较高的性能价格比;第三种是“常规武器”模式——即国际上称为Beowulf[1]的机群模式,采用商品化的部件,主要追求低成本。无独有偶,“未来超级计算”报告也将超级计算分为三种类型,与我们的分类十分类似:第一种是全定制模式,追求最短的time-to-solution,节点与互联网都自己做,代表产品就是日本的地球模拟器。第二种是部分定制模式或叫混合模式,节点和互联网等部件自己做一部分也买一些现成商品,代表产品是目前世界最快的超级计算机-IBMBlue Gene/L,第三种就是非定制机群,即Commodity Cluster

实际上,超级计算机和汽车等其他产品一样有两种不同方向的追求。一种是所谓Capability Supercomputing,追求在最短的时间内解决某一个特定的问题。对于涉及国家安全的紧迫问题或者某些对响应时间要求很苛刻的实时应用,我们的需要就是最高的计算能力。为了获取这种无法替代的计算能力,如同制造速度最快的赛车一样,成本已降为次要因素。世界上大多数最高档的超级计算机都属于这种类型。另一种类型国外称为Capacity Supercomputing,可翻译成高生产力超级计算机。这一类超级计算机往往同时进行几个作业,追求每单位成本有较高的持续性能(Sustained Performance)。大多数中低档的超级计算机都属于这一类型。所谓Beowulf机群只是Capacity Supercomputing的一种追求低成本的极端例子,如同小轿车中的夏利。

美国学术界和IBMCRAYSUN等公司普遍认为美国应重点做Capability Supercomputing,理由是地球模拟器持续性能可达到峰值性能的3050%,而Commodity Cluster做大型科学计算的持续性能只有峰值性能的510%,相差310倍。简单地扩大Cluster规模,不可能实现持续性能达到一千万亿次(Petaflops)的超级计算机。每一类科学问题都有其固有的并行性。在并行机上算过题的人都有体会:当并行机规模(处理机数目)扩大到一定程度时,再扩大机器规模已无济于事。性能不但不提高,由于通信开销增加性能反而会下降。此时想提高并行机性能只有增加求解问题的规模,这又受到存储容量的限制。因此,用商品化服务器做超级计算机一定会有一个性能上限。目前这个上限大概是百万亿次范围。要构建更高性能的超级计算机,必须做艰苦的科研与技术创新,想用简单的Cluster来对付肯定是不行的。

我国一段时间内把超级计算机等同于简单的机群系统,把超级计算机的科研变成简单的采购。863计划只出一半硬件成本费,科学院自曙光2000以后也没有支持过计算所做通用高性能计算机研制,使计算所几乎无法做重大的技术突破与预研。现在情况有所转变,最近科学院已同意给一笔高性能计算机的预研经费。本文不必再多费笔墨论证Beowulf不等于超级计算机。但上面的简单分析没有说清楚究竟重点应做第一种类型还是第二种类型超级计算机。要说清这件事要对超级计算机的技术瓶颈做一些具体分析。

2.     超级计算机的技术瓶颈分析

超级计算机的技术瓶颈包括:处理器的浮点处理能力、处理器到各级Cache和随机存储器的带宽与延迟、随机存储器的存取时间(即memory wall)、磁盘存储器带宽、节点间互连网络带宽与延迟等。其中有些瓶颈与微机、一般服务器是共同的,例如memory wall、磁盘存储带宽等。

对某些超级计算机应用,如等离子体物理、三维动画等,浮点处理能力可能是最关键的瓶颈。事实上所谓超标量(Super Scalar)和超流水线(Superpipelining)等先进的RISC技术主要也是致力于提高浮点处理能力。流行了很多年的Linpack性能测试标准(也是评价超级计算机TOP500的标准),主要也是测试浮点处理能力。由于对存储器带宽和I/O带宽重视不够,Linpack值很高的超级计算机往往在实际运行时性能欠佳。因此,SC2004大会上已宣布今后将不再用Linpack值评选TOP500,改用更能反映存储器与I/O带宽及延迟的HPC Challenge新标准。

不论是最近提出的“未来超级计算”报告,还是前两年IBMArgonne国家实验室等单位联合提出的Blue Planet计划;不论是IBM 正在开展的PERCS[2]项目还是SUN公司的Hero项目,强调最多的超级计算机的瓶颈都是存储器带宽和延迟。日本的地球模拟器最吸引人之处也是比商品化服务器的存储带宽高得多。微处理器浮点处理能力的增长遵循摩尔(Moore)定律,近十几年平均每年增长59%,从1988年到2004年,浮点速度增长了1000倍。但从1982年到2004年,存储器带宽每年平均增长38%,从1995年开始,下降到每年只增长25%。存储器带宽增长慢并不是技术上做不到。实际上2001年微处理器的带宽就可以做到38Gbps。为什么不把存储器带宽提高得快一些呢?道理很简单,高带宽意味着高成本。PC服务器的存储器带宽目前一般在5GB/S以下,如果做到地球模拟器的每秒32GB水平,也就卖不出去了。商品化的服务器为了解决性能与成本的矛盾,采取了分层的存储器结构,即在处理器与主存储器之间加了几级缓冲存储器(Cache)。随着微处理器速度不断提高,有Cache级数越来越多的发展趋势。对于时间和空间局部性较好的应用,比如矩阵计算或带大量循环的计算,即使主存的带宽不太宽,分层的存储器系统也能供得上计算对数据的需要。但是,对于不规则的存取,比如单独取某一个只用一次的数据,Cache系统也要一次取64128个字节,造成极大浪费(极限情况浪费94%存储带宽)。也就是说,这种情况下,存储器的有效带宽非常低。这就是为什么对某些有大量不规则存取的应用,Beowulf机群的实际运行效率非常低。而并行向量机则是通过高成本来换取高存储带宽。

存储器的延迟每年也只下降5.5%左右,远低于摩尔(Moore)定律的发展速度。1988年一次浮点运算需要6个存取周期时间才能完成,而到2004年,一个存取周期内可以做100次浮点运算。这就是说,必须一次同时取出10064位字才能与浮点处理器的能力相匹配。众所周知的Memory Wall已成为制约计算机(不仅是超级计算机)发展的主要瓶颈。除了向量处理技术外,多线程技术是所谓延迟隐藏(Latency Hiding)的重要途径。当一个线程因等待数据而挂起时,可立即启动另一个数据已经到达的线程,使处理器一直忙着。据预测,到2010年,一颗微处理器芯片中可装4-8个处理器,每个处理器可执行2-16条线程。到2020年,每颗微处理器芯片中可装64-128个处理器,每个处理器可执行16-128线程。这种片内多处理器(CMP)技术是微处理器技术发展的主要趋势,其优点之一就是大大减轻存储带宽的压力。

节点间互连网络曾经是并行计算机研究最热门的方向。我在普度大学读博士时,H.J.Siegel 教授每年都开“Interconnection Network”这门博士生课程。在很长一段时间内,有关节点间互连网络的论文在并行处理和体系结构国际会议文集中占很大比例。现在国际上还有一种学术期刊叫“Interconnection Network”,我还是这份国际期刊的编委。我国计算机界对一台新研制的超级计算机是否有创新,也特别注重互连网络是不是自己做的。对于至今超级计算机的CPU还要依靠进口的中国,以是否自己做互连网来区分第二种类型和第三种类型超级计算机似乎无可厚非。

但不同于通信产业,计算机产业链的垂直分工已非常明显。近几年已冒出来一些专门做互连网络的公司,如美国的Myrinet公司等。尽管其产品的性能还低于最高档超级计算机的互连网络,但由于许多第三方并行软件开发商在Myrinet网络上开发、移植并行软件,使其软件逐渐丰富。有些用户(比如上海超级计算中心)为了获得更多应用软件与系统软件,坚持要买这种成熟的互连网络。这说明,不但用Commodity服务器有市场竞争力,Commodity互连网络也有市场竞争力。由于互连网络公司能批量生产,一般比我们单独研制一台机器的互连网络要便宜。这里又遇到性能与成本的折衷。如果我们的目标是做一台最高性能的机器,选择自己设计互连网络是可取的。但如果我们的目的是做在市场上竞争的超级计算机,是购买商品化的互连网络还是自己做就得考虑成本。

InfiniBand标准的制定和产品问世,为研制生产超级计算机提供了新的互连网络选择。InfiniBand的带宽已达到20Gb以上,已经与IBM自己做的专用互连网络性能差不多。今后除了研制第一类超级计算机,采用Infiniband做互连网络的公司可能会越来越多。在这种形势下,创新不创新只看做不做自己独创的互连网络恐怕就有点片面了。

计算所是一个科研单位,但每次拿到研制机器的科研经费不足硬件成本的一半,只能按用户要求做互连网络。因此曙光4000A按用户需求采用Myrinet也就不足为奇了。但计算所仍然用创新工程经费的支持一直坚持做互连网络技术研究,包括光互连的研究。计算所自己设计研制的互连网络性能已超过Myrinet,但只有在批量较大时,成本才会有竞争优势。

3.     不同的应用需要突破不同的技术瓶颈

不同的应用对系统结构的要求是不同的。至今世界上还没有一个万能的体系结构完全适合所有的应用。对于批量很大的PC服务器和RISC服务器,厂商为了从规模效应中赚利润,只能根据市场需求较大的应用设计较通用的体系结构,这时用户的应用只能努力适应较固定的体系结构。商场的规律是“店大欺客,客大欺店”,对于买主非常少的超级计算机,事情就反过来了,系统结构就要服从应用的要求。IBMBlue Gene/L为什么敢采用性能只有通用CPU 1/3的嵌入式CPU PowerPC440做处理器和高组装密度的大规模并行结构(全机有32K个处理器),就是因为主要用于蛋白质折叠计算,对浮点处理能力要求不高但并行度很高。

下面的表一列出了几种应用的技术瓶颈,从中可以看出不同的应用对超级计算机的要求很不一样。表中FP表示浮点计算能力,MS表示主存规模,MB表示存储器带宽,ML表示存储器延迟,IB表示互连网络带宽,IL表示互连网络延迟。

应用

FP

MS

MB

ML

IB

IL

气候模型

 

 

等离子体物理

 

 

 

 

 

材料科学

 

 

 

基因组学

 

 

 

 

 

生物系统模型

 

 

核模拟

 

 

 

 

汽车仿真

 

 

 

 

 

人工智能

 

表一 超级计算机应用的技术瓶颈

超级计算机没有必要做成万能、通用。对应用非常明确的用户,研制针对性强的专用超级计算机可能是一条又省钱又实惠的好办法。计算所为华大基因中心研制的生物计算超级计算机曙光4000H处理能力超过4万亿次,研制经费只花了600万元。其他的应用部门也可以考虑发展面向本行业的超级计算机系统。曙光公司就具备这种针对行业需求优化体系结构的集成创新能力,在石油、气象等行业已成功地打开了局面,这是我国发展高端计算机的重要思路。

4.     我国发展超级计算机要走什么路

在“未来超级计算”等报告中,美国学者较多地强调要重点研制全定制的最高水平超级计算机,强调商品化服务器节点不适合做超级计算机。从技术上讲这种分析有道理,但其中也有要拉开与日本的距离做超级计算机霸主的政治考虑。我国的国情不同于美国,目前我国大多数用户购买超级计算机的经费预算还不到日本地球模拟器造价的1/100(地球模拟器造价超过4亿美元)。在我国,三种类型的超级计算机都有发展空间。Commodity机群是1997年出现的,现在不但占据了超级计算机的大部分市场,而且在TOP500的前20名中也占了12台。虽然采用商品化的节点和互连网络,但在系统优化配置、监控、特别是软件开发等方面仍有创新空间。这类工作主要应由企业完成,不宜再列入863等高技术计划。

这两年我国通用CPU的研制有较大进展。到2005年底,龙芯2D将可以用来研制超级计算机与服务器。也就是说,“十一五”期间,我们已有条件研制全定制的超级计算机。但是不是一定要研制并行向量机,是不是一定要不计成本研制世界上最高水平的计算机还需要认真论证。一般而言,我国的重点应放在第二类(部分定制)超级计算机。根据有所为有所不为的原则,按照用户实际需求重点突破必须突破的技术瓶颈。至少计算所要重点做第二类超级计算机,即我们称之为“高科技武器”型的超级计算机。不是追求达到解决特定问题的计算速度世界第一,而是让用户花几千万元能真正获得最大的效益。

超级计算机研究有很强的溢出效益。今天大部分微机技术甚至一些通信技术都来源于过去的超级计算机研究。最近IBM等公司在PERCS等项目中开展了一系列大胆创新的原理性研究。比如他们正在研制的SCMStorage-Class Memory)将使外存速度提高5001000倍,达到现在随机存储器的速度但价格比主存低得多。这种Disruptive(颠覆性)创新发明正是我们所需要的技术突破。瓶颈既是对我们的挑战,也是我们创新的机遇。计算所一定要加强体系结构方面的前瞻性研究,重视技术积累,不能人云亦云,盲目随大流。

长期以来863计划没有把超级计算机当成有巨大牵引力的前瞻性研究,而是当成采购一台机器,这种短视的做法应当尽快改变。

5.     计算所的努力方向之一是第三代机群系统

如果把80年代的VAX机群称为第一代机群,90年代IBMSP2看成第二代机群的起点,那么我们现在要做的就是不同于第二代的第三代机群。第三代机群要突破的关键技术包括降低成本、降低功耗、提高可用性、提高I/O能力,从而提高实际应用效益,提高组装密度等等。在这些研究方向中计算所的重点是提高生产力价格比和机群的可用性,使工业标准机群真正成为生产性系统,在本行业应用中真正发挥第一生产力的作用。

所谓生产力价格比不是实验室运行Linpack等测试程序反映出来的性能价格比,而是指单位成本、单位功耗、单位空间机群能提供给用户的实际生产力(Productivity)。所谓高可用是指计算机机群能像其他机械与电器设备一样长时间不停机地工作。目前一台PC服务器的平均无故障运行时间一般是几年,用几千台PC服务器构成的机群平均几小时就会有一个节点出故障。如果不采取容错或其他高可用技术,这种机群无法真正在生产性应用中派上用场。几个月来曙光4000A在上海超算中心的可靠运行记录表明,智能中心和曙光公司联合研制的曙光4000A的平均无故障运行时间大大长于一般用PC服务器构成的机群,按实际故障率计算,单节点的平均无故障运行时间已超过26万小时,单处理器的平均无故障运行时间超过100万小时。这一方面说明曙光公司自主设计的主板和节点可靠性很高,另一方面说明曙光4000A的高可用技术已发挥明显作用。为了满足用户不断提高的可靠可信需求,智能中心今后要下更大功夫突破高可用机群核心技术。

计算所近三年左右的目标是使工业标准机群系统的性能和组装密度提高一个数量级(2007年达到100万亿次水平),成本和功耗降低一个数量级,可靠性提高一个数量级,使得大规模机群的可用性达到99.99%(比现在提高100倍)。要达到这些目标,必须在体系结构、硬件和系统软件设计等方面做出别人意想不到的创新。智能中心把传统的机群结构称为“玻璃天花板”。现在天花板已被捅破,创新的空间非常大。我很同意徐志伟副所长的判断:“今后2-4年是我们计算所在计算机系统与软件领域做出经得起历史考验的科研成果的前所未有的时机。”我们一定要抓住这一有利时机,使计算所在系统研究方面走到世界的前列。

附文:

能力服务器――大幅度降低成本的网格计算机

一讲超级计算机,人们习惯上都与大型科学计算联系起来。实际上世界高端计算机只有不到10%用户做科学计算。目前TOP500的计算机有一半以上安装在企业(其中只有少部分做科学计算,多数不是科学计算)。实际上世界最大的几台Cluster系统都是用于Web搜索和Internet服务。这些机器从不测Linpack,所以都不在TOP500中。曙光已销售近2000套机群,很大的比例用于Internet服务(包括内容处理),因此也未列入国内统计的TOP100。既然大多数计算机用在学校、企业、机关,我们为什么不想一想什么样的体系结构才适合这类应用?为了区别于超级计算机,我们曾经把曙光2000/3000等称为“超级服务器”。我们的问题是:超级服务器应该做成什么样子?

计算机(服务器)是什么?计算机不过是提供信息处理能力(包括计算能力)、存储能力和通信能力的一种数字化工具。我们真正需要的不是计算机,而是信息处理、存储和通信能力。上世纪80年代以来,由于个人生活的需要,个人计算机(PC机)蓬勃发展,使得PC机几乎成了计算机的代名词。得力于Intel和微软公司的市场运作,人们不知不觉将个人计算机变成了每个单位的工作终端机;而把放大了的PC机去掉显示器叫做服务器,这就基本上构成了今天的计算机世界。有谁认真测试过,一天24小时,我们办公桌上PC机中的CPU、存储器有多少时间真正在工作,我们机房中服务器的信息处理和存储能力究竟发挥了多少。最近计算所科研处的费璟昊副处长对计算所的十几台正常工作的PC机进行存储器和CPU利用率的时间统计,发现存储器的利用率大多数时间只有1/3, (见图一)。而CPU的平均利用率竟然只有1/100(见图二)?如果更深入一些,考虑机器中的全部门电路,平均每一时刻究竟又有多少门电路在实际工作?

 

我们每天的工作就是上网看Email ,发Email,通过Web查资料、编程序、写文档,我们需要的就是一种能为全体工作人员提供这些能力的数字化电子系统。假如现在世界上没有PC机,没有PC服务器,我们能不能只用计算所现有硬件资源的1/10(比如说100个高性能CPU50GB随机存储器、2TB磁盘)设计完全新型的信息处理能力服务器、存储能力服务器和通信能力服务器,使之满足全所科研工作的需求?这似乎是天方夜谭,但在网络如此发达的今天,我们为什么不能抛开已被固化的思维模式大胆尝试一下新的计算机运行模式?

研究超级计算机的学者通常面临的是要求解一个规模巨大或者非常复杂的问题他们碰到的难关总是资源不够,要想方设法用上更多的处理器和存储单元;他们的思路是尽量多占有资源,而且要考虑十分烦人的同步与一致性等问题。在共享存储环境下,一个处理机修改了Cache必须让所有的处理机都知道,否则算出来结果就不对。而对大多数企业、机关、学校、研究所而言,不是致力于求解一个大问题,而是要计算机响应每个人各自不同的任务请求命令。我们现在面临的局面不是资源不够,而是大部分时间资源闲置;我们需要的不是多占有别人的资源,而是如何尽快释放自己的资源让别人用,当我们需要资源时又能立即得到。这是与超级计算机完全不同的用户要求,需要一种能大幅度节约信息化成本的能力服务器。这应当是今后几年中计算所做CPU、高端计算机系统、网络和网格研究的共同努力方向。

在过去两年中,计算所提出了与国内其他学者不同的一种网格理念:所谓网格是指把一台计算机中的各种部件(CPU、存储器、磁盘等)和资源都独立上网,形成相对独立管理的能力服务器。从这种意义讲,未来的信息系统运行模式不是大量PC机和服务器连成网络,而是能力服务器与各种新型终端构成一台网格计算机。就一个单位而言,整个计算所的信息资源就是一台大的网格计算机。

如果处理器和存储器分别集中放在不同的机柜(处理器机柜中应有少量存储器,存储器柜中也应有少量处理器),对资源共享与管理肯定会有很多好处,但这是与Processor in MemoryPIM)正好相反的思路。做超级计算也许需要CPUmemory越近越好,但在我们的工作环境中,CPU实际上已经不是“中央”。也许把存储器改为中央更合适,即Central Memory Unit (CMU)Central Storage UnitCSU)。为什么我们不能以存储器为中心来考虑新的体系结构呢?当然,跨机柜的延迟会不会导致我们的需求不能满足,还要做大量的实验来验证。如果采用光互连,机柜之间的带宽应该不成问题。总之,能力服务器怎么做还有很大的想象空间,有十分广阔的创新余地。工程中心的网络存储已经成功运行一年多并已走向市场,至少在磁盘独立上网方面我们已走出了坚实的一步。只要我们认准方向,持之以恒地做研究,一定会有令人拍手称快的好结果。

作者介绍:

李国杰:19435月生于湖南邵阳,1968年毕业于北京大学,1981年获中国科学院工学硕士学位,1985年获美国普渡大学博士学位。19851986年间在美国伊利诺依大学CSL实验室作博士后,研究计算机体系结构。1987年回到中国工作于中国科学院计算技术研究所,1989年被该所聘为研究员。1990年被国家科委选聘为国家智能计算机研究开发中心主任。近十多年,主要致力于并行处理、计算机体系结构、人工智能等领域的研究并发表了100多篇学术论文,合著了4本英文专著。目前担任英文版计算机学报主编。

几年来,主持研制成功了曙光1号并行计算机,曙光1000大规模并行机曙光2000、曙光3000超级服务器,领导计算所研制成功龙芯CPU并主持科学院重大项目IPv6网络研究。其中,曙光1号获1994年中国科学院科技进步特等奖和1995年国家科学技术进步二等奖;曙光1000获得1996年中国科学院科技进步特等奖和1997年国家科学技术进步一等奖。曙光2000和曙光3000分别获得2001年和2003年国家科技进步二等奖。1994年获得首届何梁何利基金科技进步奖,1995年被选为中国工程院院士。2000年被评为全国先进工作者。2001年获得美国普度大学杰出校友奖。2002年当选第三世界科学院院士。

李国杰院士现任中国科学院计算所所长、中国计算机学会理事长、中国工程院信息与电子学部主任、863信息领域专家委员会副主任、国家信息化专家咨询委员会委员、全国人大代表。

 

 



[1] 1994年,美国航空航天总署的戈达德(Goddard)太空飞行中心的科技人员建造了世界上第一组PC机群超级计算机,当时的目标只是达到1G(10亿)次浮点运算(GFLOPS),只是现在个人电脑的运算水平。可是当时达到这一水平的商用超级计算机价格是100万美元,研究人员用不起,只好自己动手攒,他们给自己攒的这台PC机群起了个名字:BeowulfBeowulf是英国中世纪史诗中的一位英雄,这位英雄砍断怪兽Grendel的一肢,从而打败了这一巨兽。从此以后,科学家们把自己攒的机群系统叫做Beowulf系统。

[2]Productive, Easy-to-use, Reliable Computing System