文 | 周翔

据新华社 11 月 13 日报导,新一期全球超级计算机 500 强榜单发布,中国超算“神威·太湖之光”和“天河二号”连续第四次分列冠亚军。

全球超算 500 强榜单每半年发布一次,此次中国“神威·太湖之光”和“天河二号”再次领跑,其浮点运算速度分别为每秒 9.3 亿亿次和每秒 3.39 亿亿次,而美国已经连续两次没有超算进入前三名。此外,美国“Titan(泰坦)”继半年前被瑞士“Piz Daint(代恩特峰)”赶超而落到第四名后,此次又被日本的“Gyoukou(晓光)”超过,也就是说,美国的最高排名是第五位。

而且从上榜综述上看,中国超算也又一次反超美国,夺得第一。据统计,此次中国上榜总数达到历史最高的 202 台,相比 6 月增加 43 台,与此同时美国则降至 144 台。

针对中国在超算领域的强势崛起,MIT 科技评论撰文称:

除了霸占冠亚军之外,中国在计算资源总量上也排名第一,占到榜单上超级计算机计算能力总和的 35.4%,高于美国的 29.6%。 这份新榜单揭示了超级计算机领域重磅选手美国的衰落。 事实上,这是 25 年以来美国取得的最差成绩。

美国政府已经意识到,现在它已经落伍了。为此,美国政府特地向能源部的百亿亿级计算项目拨款 2.58 亿美元,希望到 2021 年打造一个每秒计算万亿次的系统, 约为目前太湖之光的 10 倍。但是,中国方面也预计最快会在 2020 年左右达到同样的成绩。因此,事实是中国现在已经对美国的超级计算机行业造成了打击。

虽然中国在超算上的大力投入终于在近些年取得了令人瞩目的成绩,但是作为超算核心元件的处理器一直被美国掐着脖子。2015 年 4 月,美国商务部决定对中国四家国家超级计算机中心禁售 Intel Xeon Phi 计算卡,更是一石激起千层浪。

为此,中国超算已经开始转向国产处理器,并取得了不错的成绩。

据悉,中国神威·太湖之光已经启用国产申威处理器,多核性能将达到了 Intel 至强 E5 主流产品的水平,而下一代的天河三号按照要求也会转向国产处理器。

有专业认识分析称,由于天河系列超算主要是国防科大主导研发,所以它很可能使用飞腾公司的处理器,这家公司在广州、天津都有研发中心,而且早在天河一号、天河二号上就有应用 FT-1000、FT-1500 处理器,不过这些处理器使用的还是开源的 SPARC 架构,也只是用在节点连接上,并不是计算的主力。

当然,举国之力发展超算也引发了很多质疑,特别是在超算应用领域相对薄弱的前提下,如此强大的计算力是否会造成浪费?

去年 11 月,基于“神威·太湖之光”,我国科研团队完成的“千万核可扩展大气动力学全隐式模拟”应用项目获得了 2016 年超级计算机应用领域最高奖——“戈登·贝尔”奖,成为我国高性能计算发展史上的里程碑。

“戈登·贝尔”奖设立于 1987 年,此前从未有中国团队入围获奖。而 2016 年入围的 6 项应用中,就有 3 项来自中国。另两项分别是国家海洋局第一海洋研究所与清华大学合作的“高分辨率海浪数值模拟”以及中科院网络中心的“钛合金微结构演化相场模拟”。

今年 10 月 24 日,又有两篇来自中国、基于“神威·太湖之光”的论文入围“戈登贝尔奖”终选名单,占总数(3篇)的 2/3。中国崛起的速度,超出所有人的想象。

不过,并不是所有人都认可“中国速度”。

就在榜单发布的同一天,IEEE 高级编辑 David Schneider 发表了自己的看法,认为现在的 LINPACK 排名标准存在问题,并不能反映真实情况。按照 HPCG(High Performance Conjugate Gradients) 标准,“神威·太湖之光”仅仅只能排名第五,日本富士通的“K Computer”排名第一。

在这次排名中,更吸引我的不是 TOP500 的榜单,而是 TOP500 组织者最近使用的一种不同的软件测试基准 —— HPCG(High Performance Conjugate Gradients)。这个相对较新的基准是 TOP500 排名的创始人之一 Jack Dongarra 和田纳西大学的 Pitor Luszczek,与桑迪亚国家实验室的 Michael Heroux 一起提出来的。

为什么我们需要一个新的基准呢?通常的排名是根据超级计算机在基准 LINPACK(HPL)上的测试速度决定的。LINPACK 基准测试起源于上世纪 70 年代末,并于上世纪 90 年代开始应用在超级计算机上。第一个使用 LINPACK 基准的 TOP500 名单发布于1993年。最初,LINPACK基准用于测试计算机运行特定 FORTRAN 代码的速度,而新版的基准可以用来测试用 C 语言编写的代码的执行时间。

专家们一直认为 LINPACK 基准是偏向于处理器的峰值速度,而忽略了计算机内部数据网络带宽等重要的限制因素。此外,虽然它测试了计算机计算密度矩阵(dense-matrix )的能力,但这并不能代表现实世界存在的许多稀疏问题。HPCG 就是为了弥补这些缺陷而设计的。

当你根据最新的 HPCG 基准对当前的超级计算机进行排名时,结果会有很大的不同:

原本排名第 10 的日本富士通的“K computer”超级计算机,一路飙升至第一名。

而原本排在第一的“神威·太湖之光”,则下滑到了第五名。也许更重要的是,当你比较两种基准的结果时,所有的这些计算机的性能都很有巨大的差异。

以“神威·太湖之光”为例,理论上它的最高速度 Rpeak(peak为下标),能够达到 125 petaflops (每秒千万亿次浮点运算)。通过使用 LINPACK 基准测试可得,它的速度为 93 petaflops,这差不多达到了理论上性能值的四分之三。但在 HPCG 基准测试中,它只实现了 481 teraflops(每秒万亿次浮点运算),这仅仅是计算机理论性能的 0.4%。因此,在“神威·太湖之光”超级计算机上运行多个任务,就好比开着 Dodge Viper(道奇蝰蛇,超级跑车品牌),理论上可以达到 200英里/小时(322公里/小时),但却开的比加拉帕戈斯地龟(Galapagos tortoise)还慢。

那么到底是 LINPACK(HPL)的结果还是 HPCG 的结果更能代表真实世界超级计算计算机的性能呢?专家们把它们看作是“bookends(挡书板)”,将这些超级计算机的的所有用户“聚在一起”。我没有统计数据来支持我的观点,但是我怀疑这个分布会更接近书架的 HPCG 一侧,即根据 HPCG 基准的测试结果更接近真实世界的情况。如果这是真的,也许 TOP500 组织应该使用 HPCG 来对超级计算机进行排名。我认为这将更符合逻辑,但我预计组织者不会这么做。现在正超级计算机处于的 petaflops(每秒千万亿次浮点运算) 时代,而且很快就会进入 exaflops(每秒百亿亿次浮点运算)的时代,这样的数字无疑更加吸引眼球。

或许,我们应该强制规定,所有超级计算机都需要标上:这台超级计算机执行任务的速度比它们看起来要慢。”

不可否认,David Schneider 确实有一定的道理,人们总是更喜欢“千万亿”、“百亿亿”这样的数字,但是这些数字只是理论值,并不代表实际性能。

“神威·太湖之光”到底应该排在第一还是排在第五?我们又该如何看待这种“跑分”形式的排名呢?欢迎大家留言讨论。

参考文章:

https://spectrum.ieee.org/tech-talk/computing/hardware/two-different-top500-supercomputing-benchmarks-show-two-different-top-supercomputers