超级计算,对普通民众而言,是一个“高大上”的名词,代表着全世界最强大的计算机,以及基于强大硬件之上的复杂科学计算软件;而对于各领域的科学家和工程师而言,它又是在数字世界里延展我们探索未知世界能力的重要工具。
最近的10年是中国超级计算(简称超算)蓬勃发展的10年。在2018年的两院院士大会上,超级计算成为习近平总书记讲话中,战略高技术发展的一个重要成果体现:“超级计算机连续10次蝉联世界之冠,采用国产芯片的‘神威·太湖之光’获得高性能计算应用最高奖‘戈登·贝尔奖’”。
电子计算机诞生之初,由于造价昂贵,只有大型的科研机构或商业公司才有使用条件。通常意义上的第一台电子计算机ENIAC,就是由美国军方的弹道研究实验室资助设计的一台基于真空管的计算系统,它可以自动进行乘法和累加。尽管ENIAC的本来目的是为了计算火炮系统的弹道表,但冯·诺依曼(J. von Neumann)等当时就利用这台系统进行了氢弹研制以及数值天气模拟等开创性的科学计算工作。
随着1950—1960年代集成电路技术的逐渐发展,处理器的设计和制造逐渐成为可能。超级计算机也在这个时期迎来重要发展。由于彼时处理器硬件以及计算软件的研发都处于萌芽时期,并没有太多规则和兼容性的束缚,享有“超级计算机之父”之称的克雷(S. Cray)在早期提出了很多天才的构想,比如超级计算机CDC6600系统中中央处理器(CPU)和辅助处理器(PPU)的协同设计,以及Cray-1计算机中专门针对科学计算的大规模数组操作的向量处理器设计。这些设计理念直到现在仍在不同的计算系统中沿用、集成和重新发展。
从CDC6600诞生的1964年,到几乎整个1970年代,超级计算机都沿用了类似的结构,即整个系统仅靠一个或者几个强劲的处理器来支撑,每个处理器内部都有复杂的单元设计和功能。
直到1980年代,超级计算机发展的另一条路径才开始逐步显现。在超级计算机的复杂向量处理器发展的同时,集成电路技术催生下的微处理器[如英特尔(Intel)早期的4004和8008]和个人电脑也在迎来日新月异的变化。相较于成本高昂、通用性低的向量处理器,尽管微处理器单个的性能无法与之相比,但通过网络来集成大量价格低廉、标准化生产的微处理器却可以实现更高的计算性能。1981年,加州理工学院的研究者采用64个Intel 8086处理器,通过六维超立方的互联,建成了Cosmic Cube系统。此后,英特尔的iPSC系统、麻省理工学院研发的CM(Connection Machine)系统、日本富士通研发的风洞模拟器等集成了成百上千个处理器的大规模并行处理机开始不断涌现,并提供了比原来的向量处理器更高的计算性能。
“神威·太湖之光”计算系统架构 在一个节点内部,单个神威芯片聚合了4个核组,多达260个不同的计算核心;在一个神威的超节点中,通过定制网络版集成了256个芯片,并实现任意两个芯片相互间的点对点高速直连;在系统层面,通过“神威”自主研发的高速网络系统,将4万个芯片超过1000万个计算核心汇聚成一个整体。
在此过程当中,科学计算领域仍对是否能够驾驭如此大规模的并行机器存在深深的疑虑。根据阿姆达尔定律的分析,如果一个程序中有10%的部分无法并行,那么即使采用1000个处理器,最多也就是把剩下90%的时间优化到可以忽略不计,所获得性能加速比(加速比指同一个任务在单处理器系统和并行处理器系统中运行消耗的时间的比率)最多是10倍。那么几百个甚至几千个处理器是否能够获得相应的性能收益,这是有疑问的。1985年底,卡普(A. Karp)在邮件中发起挑战,如果任何人能在并行机上取得一个科学计算软件200倍以上的加速,他将私人支付100美元的奖金。1987年,计算机领域的著名研究者戈登·贝尔(Gordon Bell)正式设立了“戈登·贝尔奖”来奖励和跟踪超级计算机上最顶尖的应用成果,当年的获奖者就在由1024个节点组成的nCube系统上获得了400到600倍的性能提升。
此后近30多年里20多届“戈登·贝尔奖”的评定和颁发,见证了超级计算机和依托于超级计算机的高性能计算应用的飞速发展,也成为了国际超算应用领域的最高奖项。从头几年每秒十亿次浮点运算左右的应用性能,到2021年量子电路模拟超过每秒400亿亿次浮点运算的应用性能,无论是超级计算机硬件所能提供的计算能力,还是高性能计算软件的相关技术,都取得了长足的进步。
基于超算的超大规模分子对接药物筛选结果示例 (a)类药小分子(彩色部分)与新型冠状病毒相关受体(PDB 7K0F,绿色部分)在对接盒子(立方体)中的结合情况;(b)对接盒子中蛋白质受体和类药小分子相互作用示意。
业界都说超级计算机是科技领域皇冠上的明珠,因为它的建设需要电子芯片、计算机系统、内存、存储、电源和冷却系统,以及基础软件、应用软件等方面的技术积累和集成。需要在方方面面都做到高水准,才能集成出一台世界领先的超级计算机。
作为超级计算机,首先它的“超级”体现在异乎寻常的计算速度上。由于几乎所有的科学计算软件都采用浮点数作为基本的数据格式,浮点运算操作(浮点数的加减乘除)就成为衡量计算复杂度和计算量的基本单位。每秒能进行的浮点运算次数则成为衡量一台计算机计算速度的通用指标。可以说,现阶段超算系统的速度比科幻作家大开“脑洞”能想到的速度还要快。著名科幻作家刘慈欣在《三体》中是这样描述世界最强大计算机的:每秒可以进行500万亿次浮点运算。其实,在2008年,当时世界排名第一的超级计算机——美国“走鹃”,就已经达到每秒1000万亿次浮点运算的速度。无锡的“神威·太湖之光”超级计算机持续性能达到每秒9.3亿亿次,是三体世界的整整186倍。现实已经超越了科幻!
第二个“超级”就体现在它超级大的并行规模上。目前主流的技术路线是通过精妙的系统设计和高速的网络互连把众多计算资源集聚成一个整体,从而获得超级快的计算速度。与初期几千个或几万个核心组成的系统相比较,“神威·太湖之光”集聚了上千万个计算核心。如果把一个计算核心比作一个人的话,这台计算机就相当于一个具有千万人口的超级大都市。可以想象,要让这1000万人齐心协力,拧成一股绳,来解决一个科学或工程的问题,每个人不仅要负责自己的计算,还要跟其他人交换数据,不能“堵车”、不能“宕机”,还要考虑散热、供电、稳定性等方面的问题,这将是一个巨大的挑战,需要方方面面的技术创新才能达成。
第三个“超级”体现在解决的“超级”问题上。超级计算机的核心功能就是通过数值模拟或者是数据分析,在数字世界中拓展人类探索未知世界的能力。大到浩瀚的宇宙,小到分子、原子的模拟,在宇宙的起源和演化、全球气候变化、药物和材料的研发、飞机发动机的仿真等科学或工程的前沿领域,超级计算机以及它所支撑起的数字能力,都发挥着不可或缺的作用。特别是对于全球最顶尖的超算系统,计算能力每往前走一步,就意味着在这些领域里可以计算更大或更复杂的问题:尝试一个更复杂的设计或场景,或是把不可能变为可能。
另一个不容忽视的特点,就是超级计算机在解决 “超级”问题时,日益体现出来的强烈的交叉性。人类社会当前面临的科学技术和工程问题大多涉及多个学科,需要不同背景的科学家一起解决。单是全球气候变化和应对的研究,就涉及了大气、海洋、生态、遥感、大气化学、全球变化经济学等不同学科。而基于超算的计算软件,因为其具有灵活性,可以将不同领域的新发现和新认识集成到一个工具中,形成了一个多学科知识交叉和沉淀的平台。而这样的特性,对超算软件的研发人员提出了很高的要求。
近10年中国超算快速发展的背后是慈云桂、金怡濂先生等一批老一辈超算工作者熬更夙夜、接续奋斗打下的坚实基础。
严格来讲,中国的计算机起步并不算晚,通过学习苏联的技术,1958年就生产出第一台数字电子计算机——103机。但之后因为国内外形势的变化,直到1978年3月在全国科学技术大会上,邓小平同志提出 “中国要搞四个现代化,不能没有巨型机”,中国超级计算机事业才又重新启动起来,但彼时与西方发达国家相比,差距已经拉大。
手握超级计算机领先技术的西方国家,对包括中国在内的发展中国家实行了长期的严格管制,严禁出口相关的高端技术和产品。此外,由于超算平台可以支撑众多与国家安全等战略密切相关的计算任务,1980—1990年代,在国内的石油及气象行业中,研究人员使用购置的美国超算系统时,需要放在玻璃房内,由美方人员监管使用情况。这样的玻璃房深深刺痛着我国超算领域的研发人员,他们立志要造出自己的超级计算机。直到“银河”“曙光”等国产超级计算机研制成功后,西方才解除对中国高性能计算机的出口限制。
40年间,从初代的“银河”“曙光”到近10年中连续5年占据世界第一的“天河”和“神威”,中国在超级计算机方面发展迅速,从空白走向与美日媲美,成为继美国、日本之后第三个能独立设计和研制世界顶尖超级计算机的国家。2021年世界超级计算机500强榜单中,中国共有186台上榜,数量排行第一。这是2017年11月以来,中国超级计算机上榜数量连续8次位居第一。
在超算硬件平台迅速发展的基础上,我国的超算软件也在地球科学、生物信息、工业仿真、材料科学、人工智能等多个领域有了长足进步。在“戈登·贝尔奖”颁发的前29年里,该奖项一直被美国和日本科学家所垄断。直到2016年,中国科学院软件所、清华大学、北京师范大学、国家并行中心等单位的联合团队,终于填补了空白,以千万核可扩展的大气动力方程求解器获得这一奖项。
2021年,清华超算团队作为核心成员第三次斩获“戈登·贝尔奖”,一举打破了美国谷歌公司此前宣称的“量子霸权”神话。
“量子霸权”是一个术语,表示量子计算设备在某些应用场景中,可以表现出传统计算机无法企及的性能优势。谷歌公司2019年研发的“悬铃木”系统在200秒内完成的百万量子采样(保真度0.2%),美国最快的顶点超级计算机需要一万年才能模拟完成。时间上的差异高达10亿倍。中国超算团队凭借研发的超大规模量子随机电路模拟器,实现了近实时的量子模拟,提出的近似最优的张量网络并行切分和收缩方法及混合精度算法,可高效扩展至数千万核并行规模,并提供每秒4.4百亿亿次的持续计算性能,是目前已知的超算领域最高混合精度浮点计算性能,也证明了谷歌2019年演示的随机量子线路采样任务并不能真正实现“量子霸权”。这又是一项多学科交叉的成果,它集聚了计算机、数学、量子物理等多个领域研究者的共同努力,促进了传统超算和量子计算的共同发展。对于传统超算而言,新型量子计算机所形成的“量子霸权”是“他山之石”。在传统超算上实现这样一个复杂度极高的问题,触发了算法、并行方法、优化方法等各个方面的创新。而近实时的量子电路模拟,则真正建立了最先进的量子计算机和最先进的超算之间的桥梁,让它们可以相互促进,甚至相互融合。
获得超算领域最高奖,对于中国超算的发展而言,是一个重要的里程碑,更是一个新的开始。
根据功能划分,超级计算可分为尖端超算、通用超算、业务超算以及人工智能超算等几大类。在国家扶持和应用场景扩展下,2021年,我国超级计算服务规模已经达到196.6亿元,预计2026年将增长至500亿元。
虽然我国超算已经取得了一定的成绩,超级计算机数量位居全球第一,但近年来美国、日本等国也在不断提升自身实力。今年5月底,国际组织“TOP500”公布了2022年上半年全球超级计算机500强榜单,美国超级计算机“前沿”首次上榜并位列榜首,日本超级计算机“富岳”降至第2位,“神威·太湖之光”和“天河二号”分别位居第6位和第9位。“前沿”的运算能力超过“神威·太湖之光”12倍,达到每秒100亿亿次,是全球首台每秒能执行百亿亿次浮点运算的超级计算机。
为了在超算领域中保持竞争力,自2016年开始,我国陆续发布了一系列政策支持超算的发展,把超算列入《国民经济和社会发展十四个五年规划和2035年远景目标纲要》《十四五数字经济发展规划》等国家重大规划当中,强调要聚焦高端芯片、操作系统、人工智能关键算法、传感器等关键领域,加快推进基础理论、基础算法、装备材料等研发突破和迭代应用;明确表示要加快构建全国一体化大数据中心体系,建设E级和10E级超级计算中心(E级超级计算指每秒可进行百亿亿次运算的超级计算机,是国际上高端信息技术创新和竞争的制高点,被公认为“超级计算机界的下一顶皇冠”);提出加快实施“东数西算”工程等举措。仅是“东数西算”工程,其历史意义和战略价值将与西气东输、南水北调等世纪工程相媲美。这些举措的目的就是从国家战略、技术发展、能源政策等多方面出发,构建一个全方位的超算发展体系。
针对国产高端芯片,国家已经提出2025年芯片冲刺70%自给率的目标。在政策上,除了对集成电路领域企业给予“10年免税”优惠政策外,还设立专项扶持基金、放宽所得税限度、贷款贴息等扶持政策,给国产芯片企业留存了加快发展的空间。或许这是我国超算加快发展的新契机。
超算编织出的数字世界,是现实世界中人类无法直接用双手去触摸的宏观或微观问题的投影。这个数字世界中蕴含了无数的可能性,当然也有无数的挑战在等待着我们。多年来,超算硬件和软件系统持续不断发展,其背后就是人类对于科学、工程问题和未知世界永无止境的探索,多学科多领域的深度融合与发展。超算的发展也是如此,从众多学科中汲取发展的动力,同时以超算的发展反推,为各学科领域提供新鲜动力。
以地球系统数值模拟近年来的发展为例,除了时空分辨率的持续提升(美国、欧洲及日本团队均已提出了基于E级超算的全球1千米分辨率大气模式目标),还呈现多过程、多时空尺度相耦合的复杂特性,对模拟软件的研发提出了新的挑战。数据分析方面,气候变化、地球物理等领域积累了海量的多类型数据,也有研究开始尝试以深度学习方法增强和取代原有的数据分析功能。与互联网的语音及图像数据相比,科学领域的数据及模型往往涉及更大的维度和数据规模,而且对标注有更高的专业要求,对训练和使用都提出了更多问题。在这种背景下,探索超算与人工智能方法结合的方案推动上述问题发展的同时,还将进一步开发出两条路径之间互补性的巨大潜力。例如,米级分辨、多时间点观测的遥感卫星数据相较于百公里级的气候模式,有巨大的潜力提供更多的信息和预测能力。超级计算与人工智能的相遇和深度融合也将为众多领域科学问题的探索提供更多可能。
中流击水,奋楫者先。我们无法断言未来的超算世界会是怎样,但随着计算技术和方法的不断演进,超算本身与其他学科领域的深度融合,将会在数字世界中提供越来越多的创新可能。