美国重回超算排行榜第一位,中国的五年冠军终结。此文为你解答常见问题:中国超算用的都是外国芯片,所以不值一提吗?超算是按照什么排名的?超算有什么用?超算和量子计算机是什么关系?……中国正在发展下一代超算,可能在不久之后又会重回第一,拭目以待!
2018 年 6 月 8 日,美国能源部橡树岭国家实验室宣布,造出了目前世界上最快的超级计算机,叫做“Summit”(顶点)。
超级计算机“顶点”由一排排电冰箱大小的黑色模块单元构成,总重 340 吨。图片来源:纽约时报
在学术界,有一个著名的超算 500 强排行榜,叫做 TOP500,自从 1993 年 6 月创办以来,每半年发布一次。2018 年 6 月 25 日,TOP500 榜单更新了,Summit 如愿登顶。这件事引起了很多人的关注,因为这是 5 年以来,美国第一次重新夺回 TOP500 的第一名。从哪个国家的手里夺回的呢?你猜对了,就是中国!
下面,我们先来介绍一下现在的 TOP500 榜单,然后解答若干个关于超算的常见问题。我知道,你最关心的问题是“这事对中国有什么影响”,请稍安勿躁,等到你了解了原理之后,答案自然就水到渠成了。
第一个也是最基本的问题是,TOP500 是按照什么来给超算排名的?用日常语言来说,当然就是计算速度。用专业语言来说,是每秒能够执行多少次浮点运算。
但是当你去看 TOP500 的榜单时,你就会发现,对于每台超算都列出了两个计算速度,一个叫做 Rmax,一个叫做 Rpeak。例如对于目前排第一的 Summit,Rmax 是每秒 12.23 亿亿次,Rpeak 是每秒 18.77 亿亿次。那么这两个符号是什么意思呢?我们到底应该关注哪个?我们知道,max 是最大的意思,peak 是顶峰的意思,那么最大值和峰值哪个大?这可真成了一个哲学问题了!
▲2018 年 6 月 TOP500 榜单
真正的回答是,Rmax 是实测的最高速度,Rpeak 是理论上的最高速度。总会有些实际原因使超算的性能达不到理论上限,所以 Rmax 总是小于 Rpeak,就像刚才这两个数值,12.23 亿亿小于 18.77 亿亿。因此,TOP500 排名用的是实测的最高速度,Rmax。媒体为了突出超算的神速,往往喜欢报道理论最高速度 Rpeak,但其实这有一定的误导成分。大家以后看到关于超算的新闻时,请一定看清楚了,他说的到底是哪个速度。
好,我们来看 TOP500 目前排第二的超算。这是中国的“神威太湖之光”,它的 Rmax 是 9.3 亿亿次每秒,相当于 Summit 的 76%。神威太湖之光是一台了不起的超算,曾经在从 2016 年 6 月到 2017 年 11 月的四期 TOP500 榜单中排在首位,四连冠。Summit 这次登顶,就是超过了神威太湖之光。
▲神威太湖之光
第三名是美国的“Sierra”(山脊)。这是一台新的超算,初次上榜就打到了第三。它的 Rmax 是 7.16 亿亿次每秒,相当于 Summit 的 58.5%,神威太湖之光的 77%。
第四名是中国的“天河二号”,它的 Rmax 是 6.14 亿亿次每秒。天河二号也是一台了不起的超算,曾经在 2013 年 6 月至 2015 年 10 月的六期榜单中六连冠,直到 2016 年 6 月让位给神威太湖之光,然后一直保持亚军,直到这次再下降两位到第四。
▲天河二号
第五名是日本的“人工智能桥接云基础设施”,这是一个超长的名字,英文叫做 AI Bridging Cloud Infrastructure,简称 ABCI,我们还是叫这个简称方便。ABCI 也是一台新的超算,它的 Rmax 是 1.99 亿亿次每秒。请注意,这个数值跟天河二号的 6.14 亿亿次每秒就有巨大的差距了,天河二号相当于 ABCI 的 3.09 倍。而从第一位的 Summit 到第四位的天河二号,Rmax 的变化只不过是 2 倍而已。因此,可以认为 TOP500 的前四名组成一个第一集团,而从第五名以下的若干台超算组成第二集团。
从第六位到第十位,分别是瑞士的“Piz Diant”(代恩特峰),美国的“Titan”(泰坦),美国的“Sequoia”(红杉),美国的“Trinity”(三一),和美国的“Cori”。它们的性能变化就比较平缓了,第十位的 Cori 也有 1.4 亿亿次每秒,相当于第五位 ABCI 的 70%。
从第 11 位往下看,你会发现美国、中国、日本、瑞士这四国之外的其他国家也纷纷出现了。例如韩国,第 11 位;意大利,第 13 位;法国,第 14 位;英国,第 20 位;西班牙,第 22 位;德国,第 23 位;沙特阿拉伯,第 29 位;印度,第 39 位;加拿大,第 53 位;俄罗斯,第 72 位;瑞典,第 92 位。好吧,前 100 名中只出现了这些国家。基本上,世界科研的主力国家也都在其中了。当然,你可以认为沙特阿拉伯是乱入的——有钱虽然能为所欲为,但花钱雇一群外国人来搞科研总不是长远之计啊!
上面的统计,很自然地让人想起一个问题:在 TOP500 的这 500 台超算中,来自哪个国家的最多?
回答是:中国!中国占据了 TOP500 中的 206 台超算。这高达 41.2% 的比例,用足球界的常用语来说,彰显了统治性。
第二是谁呢?第二当然是美国喽,以美国的实力,没理由连第二都排不上。美国在 TOP500 中占据 124 台,比例是 24.8%。你如果问美国人,对这个成绩感到开心吗?回答肯定是:不开心。因为这是美国的最低成绩,历史新低。
其实自从 TOP500 开始发布的 1993 年以来,美国曾经不止一次地失去速度最快的桂冠,但始终保持着上榜数最多的地位。因此,你可以说美国一直保持着最强的整体实力,或者用篮球的语言说,板凳的深度最深。但是到了 2017 年 6 月,榜单中是美国 169 台,中国 160 台,双方已经十分接近了。到了 2017 年 11 月,两者的顺序终于翻转,中国达到了 202 台,美国下降到 145 台,中国第一次在上榜数目上登顶,美国第一次失去这个第一。在最新的榜单中,中国失去了速度排行的第一位,但扩大了上榜数目的优势,从 202 增加到 206,而美国从 145 下降到 124。在这个意义上,现在是中国具有最强的整体实力、板凳深度。
我们继续往下看。目前在 TOP500 中第三多的是日本,36 台。第四是英国,22 台。第五是德国,21 台。第六是法国,18 台。基本上,你认为是科技强国的那些国家,就是超算的强国,这两个集合是高度重叠的。这也可以反映出超算的重要性,它相当于科技界的一种基础设施。
好,以上是关于 TOP500 的一个大致的背景。我们应该如何看待这些新闻呢?
最最基本的一点值得向公众科普的是,超算是非常有技术含量的。
在中国的超算占据首席的 5 年中,很多人对此不屑一顾。他们以为超算就是处理器堆出来的,有钱多买些处理器,计算能力就上去了。他们还以为中国的超算都是买的外国的处理器,因此计算能力再高也不值一提。我必须指出,这是双重的误解。
要澄清第一点误解,一句话就够了:神威太湖之光用的芯片是中国自己生产的,不是从外国买的。如果你还想了解更多细节,那么就是神威太湖之光安装了 40960 个中国自主研发的“申威 26010”众核处理器,该众核处理器采用 64 位自主申威指令系统。芯片叫做“申威”,申请的申,所以超算叫做“神威”,神奇的神,看明白这两者的关系了吧?
你也许会问:那么天河二号,用的是谁的芯片呢?回答是:天河二号以前用的是美国英特尔的 Xeon Phi 芯片,Xeon 的中文名字就是大家熟悉的“至强”。
然后,这里就有一段故事了。天河二号连续四次夺冠后,2015 年 4 月 9 日,美国商务部就拒绝了英特尔公司向中国的国家超级计算广州中心出售至强芯片用于天河二号系统升级的申请。中国的国家超级计算长沙中心、广州中心、天津中心和国防科技大学这四家国家超算中心,被美国列入了出口管制名单。所以你看,美国早就在大动作限制中国超算的发展了。与此同时,美国又宣布要建造 3 台超过天河二号3-6 倍的超级计算机,Summit 就是其中之一。这明显就是一方面要扼杀你,一方面自己要夺回第一。
但是因为中国在自主研发芯片,所以让美国的限制落了空。中国横空出来一台神威太湖之光,用的全都是自主芯片,在冠军位置上又占据了两年。不但是神威太湖之光,以后中国的超算用的必然也都是自主芯片,因为中国在制定超算发展规划时,就已经这么明确规定了!
神威太湖之光从一开始用的就是国产芯片,那么天河二号怎么办?天河二号表示:我觉得我还可以抢救一下。于是乎,2017 年底,天河二号用国产的 Matrix-2000 协处理器替换了用了五年的 Xeon Phi 加速器。没错,这个国产芯片的名字叫做 Matrix-2000!
好吧,无论这个名字令你们产生什么样的联想,这次升级把天河二号的每秒计算次数从 3.39 亿亿次提升到了 6.14 亿亿次,而功耗只增加了不到4%。所以,作为一台五年“高龄”的超算,天河二号还能在 TOP500 上排到第四,这是相当不容易的,堪称一个杰出的成就。
OK,以上解释的是第一点误解,这些事实性的东西很容易理解。要澄清第二点误解,就稍微复杂一点,需要了解超算的基本原理。
请问,超级计算机为什么算得那么快,能够比个人电脑快成千上万倍?是因为超算用了一个比个人电脑的芯片快成千上万倍的芯片吗?当然不是,世界上没有这样的芯片。
实际的办法是,超算用了很多个芯片,让它们同时执行任务,而单个芯片的性能跟个人电脑的芯片是差不多的。用科学术语来说,这叫做“并行计算”,这是高性能计算的基本思路。用日常生活来比喻,就是“三个臭皮匠,顶个诸葛亮”!有人指出,这里的“皮匠”其实不是处理毛皮的工匠,而应该是“裨将”,即主将身边的副将。无论如何,超算用的远不止是三个裨将,而是三千、三万以至更多个裨将。
下一个问题是,如果你用了n个芯片,你的计算速度就是单个芯片的n倍吗?你立刻就可以发现,不是。实际上,你要让多个芯片同时干事,就必须首先给它们划分好任务,这个任务划分是要消耗时间的。然后,当各个芯片开始计算之后,还不时地要和其他芯片交换数据,这个数据通信也是要消耗时间的。因此,计算速度的增长,总是低于芯片数的增长。超算的速度与单个芯片速度的比值,称为加速比。现在我们明白了,加速比总是低于芯片数的。
当芯片比较少的时候,加速比上升得比较快。随着芯片数的增加,加速比上升得越来越平缓。当芯片很多的时候,任务划分和数据通信会变成瓶颈因素,这些负担的增加会抵消芯片增加的好处,因此加速比会达到饱和,不再上升。由此可见,芯片并不是越多越好的,光靠堆芯片是堆不出超级计算机的。
▲典型的加速比曲线,横轴是处理器数目,纵轴是加速比
如果你在大的组织当中做过事,例如大企业、大的政府机构以至大的非政府组织,你就会有很多亲身体会,人浮于事、推诿扯皮之类的毛病,在越大的组织中越容易出现。所以,组织并不是越大越好的。超算也是同样的道理!
现在你可以理解,一台超算能够容纳下多少芯片,并不是取决于有多少钱能用来买芯片,而是取决于系统架构。只有你的系统架构改进了,才能让更多的芯片发挥作用,达到更高的计算能力。超算的芯片数增加,是一个结果,而不是原因。超算的技术含量,是表现在这里!不要以为只有芯片是核心技术,超算架构同样也是核心技术!
例如,天河二号取得突破,最关键的技术之一就是中国自制的 TH Express-2 主干拓扑结构网络连接,这是世界领先的。
因此,无论是哪个国家,能在 TOP500 上名列前茅,都是非常有技术含量的。现在你明白那些认为中国的超算不值一提的人,是犯了多少错误了吧?
顺便说一句,有些人认为超算没有多少技术含量,理由是超算很容易造,例如谁谁用多少台游戏机就堆出了一台超算。这实际上,是犯了一个概念错误。我们关注的是那些性能最高的超算,而不是泛泛而言的超算。
现在 TOP500 的最后一名,是瑞士的一台超算,叫做“EPFL Blue Brain IV”。它的 Rmax 只有 715.6 万亿次每秒,也就是 0.07156 亿亿次每秒,跟第一名 Summit 的 12.23 亿亿次每秒相比,只相当于 0.585%,连人家的零头都不到。可是这已经是世界上第 500 位的超算了,好歹是在兵器谱上有排名的,称得上有头有脸了,那么后面那些连排名都谈不上的超算,能有什么样的技术指标?指着这样的超算,说超算技术含量不高,不觉得自己脑子有问题吗?
好比我们来看豪华汽车,入门级的宝马 1 系可以叫做豪华汽车,时速超过 400 公里的布加迪威航也可以叫做豪华汽车,但你会觉得这两个是一回事吗?
▲布加迪威航
在澄清了这个最基本的误解之后,还有一个常见的问题:超算有什么用?
不要笑,虽然在稍微有点见识的人看来这确实是个可笑的问题。许多人问这个问题,并不是因为他们有证据认为超算没用,而是因为他们“感觉”中国的就是没用的。这是一种条件反射,并不是理性思考。
虽然如此,我们还是可以给出一个正经的回答。超算的用途非常广泛,因为现在有太多的领域可以用计算来模拟了。例如空气动力学,这对飞机和汽车的设计都是非常基本的。大家知道飞机和汽车需要吹风洞,超算模拟就相当于吹一个数值的风洞。又如气象预测,你想知道飓风的移动轨迹吗?超算告诉你。又如宇宙的演化,你想知道银河系是怎么变成现在这个样子的,以后会变成什么样吗?超算告诉你。我的专业领域叫做理论与计算化学,这个学科的主要内容就是用计算来预测分子的结构、材料的性质,那么超算的用处就更是一目了然了!
▲银河系
有人也许会问:有什么必要非要算得那么快?算得慢点有什么不可以?
不要笑,虽然这听起来也是个很可笑的问题,但我们还是可以给出一个正经的回答。有许多问题,我们是希望能实时预测的。例如化工的过程,原料在反应器里如何扩散,如何反应,这是大家十分关心的问题。假如你算得比实际的过程快,那么你就可以预先操纵。但假如你算得不如实际过程快,那么你的计算就毫无用处,你还不如老老实实跟着原料走呢,你也就无法操纵了。因此,计算快慢的区别并不一定是 80 分和 90 分的区别,而可能是 0 和 1 的区别,以至于生与死的区别。前中科院副院长李静海院士多次强调过,计算能力就是一个国家的核心能力之一。
实际上,计算能力永远没有足够的时候。一旦当前的问题得到了解决,人们立刻就会提出需要更高计算能力的下一层次的问题。例如在计算流体力学里有直接数值模拟,试图捕捉最小尺度的漩涡,但目前只能算到几毫米的空间。你觉得最小尺度的漩涡是多小?这得需要多大的计算量?又比如现在一种新兴的发动机叫做超燃冲压发动机,里面的超声速燃烧就涉及化学基元反应、湍流、热交换等许多复杂的过程。当我们期望通过数值模拟去了解更为精细的过程的时候,我们就会发现,计算能力总是不够的。
▲超燃冲压发动机
在超算业界,有一个最高级的奖项叫做戈登·贝尔奖(Gordon Bell Prize),是授予最杰出的高性能计算应用的,每年颁发一次。理所当然地,获得戈登·贝尔奖的应用,一般都是在最快的超算上运行的。2016 年和 2017 年,中国连续两次获得这个戈登·贝尔奖,获奖的应用分别叫做“千万核可扩展大气动力学全隐式模拟”和“非线性地震模拟”,它们用的都是神威太湖之光。如果你对这两个名字感到云里雾里,那么只要我跟你说,后面那个就是对唐山大地震的高精度模拟,你就明白这个研究有多重要了吧?
▲清华大学地球系统科学系副教授付昊桓等共同领导的团队完成的“非线性地震模拟”获得 2017 年戈登·贝尔奖
经常有人认为,中国的超算排第一,只是面子工程,没有用处。还经常有人认为,中国的超算排第一,是因为超算的性能已经够用了,其他国家没有动力发展更快的。现在你可以明白,这些观点是多么愚蠢了吧!
当然,中国的超算工作仍然有需要改进的地方。超算的使用者会注意到一个问题,就是中国的超算应用普及还有待加强。虽然我们上榜 TOP500 的超算数量已经成了全世界最多的,500 台里占了 206 台,但中国的超算毕竟发展的时间还比较短,许多相关部门和人士还没有及时跟上这个潮流。例如不同超算的应用界面不一样,就会让许多初学者感觉很头疼,然后就不愿意用超算了。
如果中国在冲击超算性能高峰的同时,各个地区也能够统筹计算资源,共享系统和硬件,作业全域调配,改善超算的易用性,那么应用效果就会好得多。事实上,如果学生们能亲身体会到国家的计算能力在提升,“太湖之光”、“西湖之光”、“鄱阳湖之光”等等就在身边,那么这本身就是一种很好的宣传。国家应该有一揽子计划,推动超算的普及。研发更快的超算只是这个计划的一个环节,后面还有许多工作要做。
下面一个问题,终于是一个相当有技术含量的问题:超算和量子计算机是什么关系?推而广之,有许多人问:美国的量子计算机是不是已经要取代超算了?还有许多人问:超算是不是已经无所谓了,中国应该在量子计算机上弯道超车?
对此的基本回答是:超算和量子计算机完全是两回事。当然,它们都很重要,都很值得关注,不过有两个基本的区别。
第一,超算是一个现实的技术,已经用了很多年,而量子计算机还在实验室演示阶段,离实用还很远。虽然各国都在努力发展,但量子计算机什么时候能够达到实用的程度,还完全无法预测。
这第一点区别是很容易理解的,而第二点区别就不是那么容易了,需要很多背景知识。第二点是,许多媒体常常把量子计算机描绘成无所不能,因为它干什么都特别快——但这是错误的!
实际情况是,量子计算机并不是对于所有问题都特别快,而是只对于某些特定的问题比传统的计算机快。这是因为对这些问题,可以设计出快得多的量子算法,这些算法只能在量子计算机上实现,在传统计算机上不能用。而对于大多数问题,目前并没有巧妙的量子算法可用,量子计算机也就没有优势可言了。也就是说,量子计算机的优势,是依赖于问题的,并不是干什么都灵。
有人可能听说过一个词,“通用的量子计算机”,然后以为通用的量子计算机就会比专用的量子计算机强得多,在所有问题上都会比传统的计算机快。很遗憾,这种理解也是错误的。
所谓通用的量子计算机,意思是它可以编程,可以在上面实现所有的量子算法,而专用的量子计算机只能做特定的某些事。这就好比计算尺和现代计算机的区别,在现代的电子计算机出现之前三百年,我们已经有了计算尺,它只能做四则运算,而现代的计算机可以做任何程序允许实现的事情。但是这个区别不会带来本质性的变化,如果一件事是做不到的,那么从专用到通用,仍然是做不到的。
最近,科大郭光灿院士的研究组在《物理评论快报》上发表了一篇文章,提出了基于时间复用的新型量子行走方案,建成了 50 步的光学量子行走实验系统,并基于该系统首次直接测量了具有手征对称性的量子行走中的体拓扑不变量。量子行走可以实现普适的量子计算,“普适”英文是 general,其实就是“通用”。因此,这个研究对建造通用的量子计算机是有帮助的。当然,这种量级的成果在科大隔三差五地就有出现,欢迎同学们来到科大,为量子信息的发展做出贡献!
量子计算机擅长的问题虽然还不是很多,但在其中就有一些是非常重要的。例如因数分解,也就是说把 21 分解成 3 乘以 7 这样。因数分解的困难性,是目前最常用的密码体系 RSA 的基础,因此这是个非常重要的问题。如果量子计算机能够实用了,那么我们就可以迅速分解长达几千位的数字,RSA 密码体系就会迅速被破解,这会造成重大的影响。想想看,如果你的移动支付信息轻易就被破解了,社会会变成什么样!
就关于超算的问题而言,量子计算机当然是非常重要的,有颠覆世界的潜力,但发展量子计算机跟发展超算并没有矛盾。我们现在是两条腿走路,对超算是作为一个现实的技术来发展,对量子计算机是作为一个前瞻性的研究来发展。
最后一个问题是,在了解了这么多之后,我们应该如何看待美国重回 TOP500 第一,中国的五年冠军告一段落呢?
基本的回答是:这是一个良性竞争。既然超算是一个这么有技术含量、又这么有用的技术,那么无论哪个国家取得进步,对全人类来说都是好事,都是值得肯定的。大家你追我赶,共同把人类的能力边界推向前进,这是一个非常积极的景象。
事实上,美国这次夺冠,对于业内人士来说丝毫不意外,因为这些研究项目都是公开的,几年以前大家就都知道了。中国也正在发展下一代的超算,如果顺利的话,可能在不久之后又会重回第一的位置,并且把超算速度从现在的每秒十亿亿次提高到百亿亿次的量级。每秒计算百亿亿次的超算,称为E级超算,是现在全世界攻关的下一级台阶。
例如,在 2018 年 5 月的第二届世界智能大会上,国家超算天津中心展示了“天河三号”原型机,它的设计性能就达到了百亿亿次。天河三号全部采用自主技术,处理器是自主的飞腾芯片,通信是自主的天河高速互联通信,操作系统是自主的麒麟操作系统。天河三号原型机将会在 2018 年 6 月部署到天津超算中心,年底的时候会正式投入使用。请注意,这个是原型机,用于小规模验证。如果验证成功,整机会在一两年后问世。
▲天河三号原型机
除了天河三号之外,中国也有其他的百亿亿次超算项目,例如中科曙光的“E级超算”以及江南所/济南超算中心的“神威E级”。千帆竞渡,百舸争流,让我们拭目以待!