首都科学讲堂第681期《神机妙算:超级计算机都在算什么》

信息来源:北京科学中心      发布时间:2021-02-07

  2021年2月6日,首都科学讲堂线上开讲,本次首都科学讲堂邀请了北京应用物理与计算数学研究所研究员、高性能计算中心主任徐小文 ,为大家带来题为《神机妙算:超级计算机都在算什么》的精彩讲座。

  

  神机妙算:超级计算机都在算什么

  和我们使用的普通计算机不同,超级计算机在科技创新和产业发展中,起着“顶天立地”的支撑作用。在大飞机与航天器设计、新材料新能源、药物研发、基因工程、气候气象等领域,超级计算机更是已经成为了创新研究的必备工具。目前,全球最快超级计算机的运算速度已达到每秒53亿亿次。过去10年,我国超级计算机“天河二号”和“神威·太湖之光”曾连续5年排名世界第一。在世界超算TOP500最新排名中,我国超级计算机台数占43%。

  第一讲 神机篇:认识超级计算机

  每个人每天基本上都在用计算机,但对于超级计算机,你可能听过,却不一定用过,甚至都可能没有见过真实的它。那么,超级计算机到底长什么样,名为“超级”的它,真的名副其实吗?

  国际上专门给计算机排名的TOP500组织,每年都会选出全球最快的500台超级计算机。1993年至今,以一年两期的频率,已发布了56期排行榜。在2020年11月发布的最新一期榜单上,日本富岳计算机被评为全球最快的超级计算机。计算机每秒能够计算的浮点运算次数,一般用来衡量计算机的速度,那么,“富岳”快到什么程度?

  我们平时使用的笔记本电脑运算速度大概是每秒100亿次的浮点运算,“富岳”的运算速度为50亿亿次的浮点运算,相差5000万倍,差距非常大。超级计算机本质上是一个并行计算机——是由很多可以并行执行的处理单元组合在一起的。比如说“富岳”实际上包括730万个CPU核,常用的笔记本电脑只包括几个CPU核。

  超级计算机的造价和使用起来也都非常贵。“富岳”造价将近60亿元人民币。它的能耗也非常高,普通笔记本只消耗30瓦左右的电力,“富岳”在全功率下,能耗高达30兆瓦,相差了100万倍。如果按照一块钱一度电来计算,“富岳”每年的电费就超过2亿元人民币。

  另外,超级计算机需要一个专门的机房来摆放,就是我们常说的超算中心。超算中心需要专门的供电系统和辅助设备,建筑的体量一般都很大。

  中国超算的发展速度是非常快的。1983年,首台并行机“银河-I”计算机在长沙研制成功,运算速度达到1亿次每秒。而在过去十年内,TOP500全球排行第一的机器共8台:美国3台、日本2台、中国3台。其中,中国有六年时间共11次排名世界第一,而且近两年,进入TOP500的机器数量中国也是最多的。

  目前我国最快的两台超级计算机,第一是“神威·太湖之光“,装在国家超级计算无锡中心,运算速度接近11亿亿次每秒。第二是国家超级计算广州中心的”天河二号“,运算速度达6亿亿次每秒。“神威·太湖之光“目前全球排名第四,”天河二号“全球排名第六。同时,过去十年,我国建了八个国家超级计算中心,装载的都是全球运算速度非常快的机器,成为国家科技创新的一个新基建。

  下一个超级计算机的里程碑,也是目前各个国家竞相争夺的制高点,是百亿亿次计算机(1018 次/秒,下称“E级机“)。百亿亿次计算机什么时候能出现?

  2019年,有一个预测时间表,推测第一台百亿亿次计算机会在近两年出现。但由于各种原因,这个机器目前还没有出来。

  在2016年,美国能源部和美国国家核安全局启动了一个百亿亿次计算的攻关计划,要求全面推进机器及应用、软硬件的协同研发,来确保当时预估在今年前后实现的国家战略安全的百亿亿次计算。当然,目前来看,这个节点可能会再往后推。随后,美国能源部在2019年又签订了三台E级机的采购合同。特朗普在位的时候,曾砍掉了很多科学领域的预算,但始终未砍掉超级计算的预算。

  我国对超级计算机的发展也非常重视。2018年,我们就研制了三台E级计算的原型机,皆基于国产处理器,但真正的E级机什么时候出来,还存在不确定性。

  E级机的研发,存在着非常大的挑战,为什么?

  首先是能耗。日本“富岳“50亿亿次的计算,能耗已在30兆瓦。如果按照百亿亿次扩展,能耗很难控制在我们想要的40兆瓦内。即使按照40兆瓦的能耗约束,造出来后,每年电费也近3亿元人民币。

  其次是应用。机器造出后,应用软件能不能驾驭硬件也是一个很大的问题。“富岳“包含了730万个CPU核,那么E级机肯定会超过1000万、甚至数亿个并行处理单元。应用软件该如何去驾驭,使这么多的处理单元能同时高效工作,这是一个非常大的挑战。

  E级机是人类追求计算能力方向上的一个里程碑,各个国家都在为之努力。美国能源部还联合美国超级计算机公司Cray宣布把每年的10月18日定为美国的百亿亿次计算日。

  为什么是10月18日?因为百亿亿次计算是10的18次方。美国把10月18日作为一个节日来庆祝,也侧面说明它对追求百亿亿次计算的决心是非常大的。但E级机到底什么时候诞生,由哪个国家先造出来,现在还存在着很大的不确定性。  

  第二讲 应用篇:超级计算机在算什么

  超级计算机造价这么高,电费也这么贵,造出来到底有什么用呢?超级计算机平常都在算什么?

  让我们先看看世界上第一台通用电子计算机,它叫ENIAC,1946年2月14日在美国的宾夕法尼亚大学研制成功,当时每秒的运算速度是5000次,现在看起来是很慢的。

  ENIAC是为了二战需要而制造的。战争时期设计新型炮弹,需要计算炮弹轨迹,然后据此调整炮弹的威力。另外在欧洲战场,它也被用于加密和解密工作。今年正好是第一台通用电子计算机诞生75周年,是一个非常值得纪念的年份。

  我们国家第一台计算机103机,在1958年8月1日研制成功。当时它每秒的运算速度仅30次,非常慢。1959年的升级版本104机,运算速度已达到每秒10000次。这些计算机也主要用于国防尖端科技领域。

  实际上,超级计算自诞生始,就是为了尖端研究研制的。它提供了比普通计算机更为强大的算力,加速了作为科研计算手段的发展。不过最近十年,超级计算机与我们的日常生活联系得也是越来越密切了。

  让我们先看看,世界上最快的这三台计算机在干什么。

  排行榜第三名是在美国能源部劳伦斯利弗莫尔国家实验室的Sierra,性能是每秒11亿亿次。这台机器应用比较单一,主要应用领域集中在国家安全方面,比如核武器的研制、库存武器的有效性、聚变能源的探索等。

  排在第二名的机器是2018年部署在美国能源部橡树岭国家实验室的Summit,性能是每秒20亿亿次。这台机器应用范围比较广,包括天体物理、生物能源、新材料制造和生命科学等。

  第一名的机器就是日本的“富岳“。这台机器实际上是2020年新部署的,安装在日本理化研究所。这台机器明确了九大应用领域:灾害预测、气象和环境、基因医疗、药物开发、制造、新材料、新能源、能源储藏、宇宙科学等。去年4月,新冠肺炎疫情全球暴发的时候,它也被应用于与新冠肺炎疫情相关的研究,比如新药物的筛选和病毒传染模型的计算等方面。

  看完全世界最快的三台计算机,下面看看我国的超级计算机。据2020年中国高性能计算机性能TOP100数据,我国超级计算机领域的应用是非常广泛的。

  这些领域大致可以分为两类,一类是传统的科学工程应用,比如能源、电力、工业制造、教育和科研。另外一类主要是近几年兴起来的新型应用,比如云计算、大数据、视频制作、动画渲染,以及互联网、人工智能。

  从这个榜单可以看出来,虽然普通人直接用不到超级计算,但实际上,超级计算与我们日常生活的关系是越来越密切了。

  首先,超级计算在工程和工业设计里,发挥着非常重要的作用。举个例子,湖南有座桥叫做赤石大桥,漂亮宏伟,而且有七个“世界第一“。这座桥2014年设计完工,准备通车的时候发生了火灾,设计单位就对它进行了修复,修复后就需要评估桥梁的安全性能。当时为了作这个评估,使用很多超级计算机进行了非常多的计算,包括采用了一些先进算法,确认修复后的桥梁强度没有损害,确保2016年桥梁顺利通车。

  再看一个发动机的例子。发动机的设计是非常复杂的,研制也非常困难。2016年,我国专门成立了中国航空发动机研究院。传统发动机设计必须经过多次试验,研制周期非常长,大概10-15年,研究经费50亿美元。为了造一台发动机,需要至少40-50台实验发动机。而现在基于超级计算,已经大大地减少了试验的次数。基于超级计算的数值模拟,可以把研制周期减少4-7年,节省十多亿美元的经费。传统的基于实验的发动机设计,便转向于一种基于科学的预测设计,大幅度地缩短了研制周期,促进了工业的发展。

  另外,我国从上世纪50年代起就开始用数值天气预报,所以,基于超级计算来作数值天气预报,是现在各个国家气象预报的一个主要手段。

  第三讲 妙算篇:怎么用好超级计算机

  超级计算好不好用,主要是说真正用它来做研究的时候,能不能高效地发挥它应有的算力。超级计算机最主要的就是应用软件,因为所有的东西都是通过应用软件来计算的。

  应用软件面临着“四道墙”的挑战:编程墙、性能墙、产出墙和可靠墙。

  下面我简单地介绍一下这“四道墙”。“编程墙”就是说,应用软件能不能很快地研制出来,涉及到并行编程和软件架构。在一个普通的计算机上,做编程是相对容易的,但想用好超级计算机,必须要做并行编程。超级计算机应用软件非常复杂,代码量非常高,可能是几万行、几十万行,甚至是上百万行。在这种情况下,如果不能很快地研制软件,就不能充分发挥超级计算机的效率。

  假设软件研制出来了,那么应用软件能不能高效地执行,涉及到并行算法和性能优化。比如,并行执行的处理器是否能同时工作,很多处理器是否能同时解决一个问题。如果数据划分或任务划分不均衡的话,就会影响它的并行效率。这一系列的问题都需要解决,叫做“性能墙”。

  “产出墙”就是说,软件研制出来了,性能也很高,但用的时候好不好用?用户使用软件做设计的时候,是不是很快就能拿到结果。这涉及到软件界面、人机交互,包括通过超算得到的海量数据可视化。

  等这“三道墙”都解决了以后,还有最后一道墙是“可靠墙”。可靠墙是指超级计算机本身的可靠性问题。超级计算机包含的计算部件非常多,运行过程中难免出现故障。实际上,一台超级计算机每隔几个小时,某些局部就会出现一次故障。假设程序正好处于故障节点,程序就要“掉下来”。所以,怎么确保超级计算机稳定可靠地运行,是超级计算领域的一个共性难题,需要做很多系统的运行优化和管理。

  如何破除这“四道墙”?需要一种先进的软件研发模式,跟上硬件发展速度,并能与应用软件快速匹配,并且直接受益于超级计算机的快速发展。

  这里介绍一种模式,叫做平台模式。采用平台模式,可以把某领域内与高性能计算相关的一些共性内容封装在一个中间件的平台。这样,只需要再加入一些个性部分,就能够很快地研发出相应的应用软件,由中间件去同步超级计算机的演化。当然,不同的应用领域可以研制不同的中间件。

  基于这么一个模式,我们研制了在科学工程计算里具有普适性的框架,分别是JASMIN、JAUMIN、JCOGIN。基于这些框架,应用软件进行编程的时候,实际上只需要做四步,这四步都不需要和超级计算机打交道,就可以实现应用软件的自动并行。另外,这样一来,由框架去匹配超级计算机的性能优化,程序效率实际上可以自动提升,用户用起来非常方便。可以很方便地使用超级计算机,应用软件可以自动地获得超级计算机的算力。

  整个中间件的发展,经过了十多年,2004年,我们开发了第一个框架,后续2013年,我们构建了整个中间件平台。目前我们已具备十亿亿次计算能力,下一步要匹配国家百亿亿次计算机的发展。现在这套中间件,已在我国很多核心行业中发挥着很重要的作用,支撑了近百套超算软件的快速研发,取得了很好的效果。

  第四讲 机遇篇:发展自主软件与核心算法

  对于超级计算机,应用软件的自主研发非常重要。以我国两大超算中心广州和天津为例,从2018年两个超算中心统计的数据可见,我国自主研发的软件缺失严重,目前使用的大部分仍是一些国外开源软件。

  国外进口软件有什么问题?一个最主要的问题是,进口软件的实际性能和我国超级计算机的峰值性能差距非常大。基本上可以低到1-2个,甚至更多的量级。进口软件一般会限制CPU核数等,反正就是不让你用那么高的性能。一方面,造成我国超级计算机峰值性能的巨大浪费,另一方面,用这些软件去做设计的时候,总是存在着“天花板”。另外还有一个风险是,它也受限于出口管控。

  核心算法是自主研发超级计算机软件的一个重要方面。2020年,我国科技部成立了首批13个国家应用数学中心,我认为,主要目的是建立数学界和工业界的一个桥梁。从这个角度来讲,应用驱动的算法研究应该大有作为。所以,怎么针对具体的实际应用提出更有效的算法,应该是现在超级计算的软件需要迫切解决的一个问题。

  目前的算法在很多实际应用里,还无法满足我们的需求。我举几个例子给大家分享。

  第一个例子是关于集成电路的优化设计和性能的验证。2016年,三星公司的Note 7手机发生多起爆炸,导致全球召回。主要原因是手机的集成电路功率——电源和散射结构设计有缺陷。手机集成电路设计,需要通过数值模拟的手段,进行仿真。然后基于这个仿真的结果来进行各种设计,包括布局,集成电路线的布局,以及信号完整性的分析和一些网络的优化,还有一些射频的参数优化。目前为止,计算能力还无法满足真实设计的需求,导致设计上有各种缺陷,这是一个很典型的例子,这就需要很强的算法。

  第二个例子是关于大坝的结构力学分析。我国有全世界最多的水坝。一个很重要的问题是,这些大坝安全吗?要对它的安全性进行评估,主要是对大坝做结构力学的分析,在数学上是非常复杂的。在水利工程里,是非常具有挑战性的问题,因为常常牵涉到很多复杂的环境。比如,广西隆林天生桥的一个水坝到了夏天的时候,坝体经常会发生一些破损。随着超级计算机性能的发展,我们可以做一些仿真计算,来评估这些大坝的安全性。

  这个水坝涉及的计算规模超过了10亿,“天河二号”花了不到37分钟的时间就把它算了出来。它首次使用数值模拟的手段,定量地分析和证实混凝土的升温膨胀效应就是导致坝体夏天经常破裂的原因。并且通过仿真数据可以得知,温差到了多少度的时候,它会发生怎样的破裂。这样一来,就可以定量地把它刻划出来,这是目前商用软件做不了的,这是一个典型的超级计算服务于设计的例子。

  第三个例子,关于激光聚变,这也是非常有意思的一个应用。激光聚变可能大家不一定知道,但聚变能源大家肯定在一些科幻电影里听过。比如,《流浪地球》里的行星发动机,《钢铁侠》里的反应堆,都提到聚变能源。聚变能源有望一劳永逸地解决人类的能源问题,是一个非常宏大的设想。

  但目前可控的聚变在地球上还没有实现,原因是什么?因为挑战非常大。要发生氘和氚聚变反应,必须在上十亿摄氏度的高温下才能够发生,释放能量。太阳的温度顶多是上亿摄氏度,这个温度的要求比太阳实际温度还高。

  氢弹爆炸实际上发生的就是这种聚变反应,但那是不可控的。我们现在的要求是,在实验室里面做可控的聚变。其中,激光聚变就被认为是未来实现聚变能源最有潜力的途径之一。激光聚变的全称叫做“激光驱动的惯性约束聚变”,它的原理非常有意思。

  即在实验室的环境下,利用一个高功率的激光作为驱动源。然后这个激光在氘、氚燃料的球状靶丸表面,驱动这个靶丸,使得它往里压缩到一定程度,靶丸处于极高的密度和温度,达到点火条件,实现一个热核的反应和燃烧,释放能量后再把能量收集起来。

  这样整体分为四个步骤:激光辐射、内爆压缩、聚变点火和聚变燃烧。如果这四个步骤成功了,聚变能源就有希望了。激光器实际上是1960年发明的,发明了以后,实际上苏联、美国,包括我国的王淦昌先生都提出过这个设想。到1970年代时,美国科学家,包我国的于敏先生都提出过完整的聚变方案。但目前为止,地球上还没有哪个国家实现这个聚变反应。最主要的困难是需要高功率的激光装置,并且要在实验室环境下,创造一种类似于太阳能量密度的环境。

  目前世界上最大的激光器是美国的国家点火装置,叫做NIF。这个装置1997年动工,2008年建成, 2010年开始做实验,共有192束激光。

  激光聚变中的靶丸实际上非常小,直径只有1微米。四个过程都将在直径1微米的靶丸中发生。但为了驱动这个微小的靶丸,却需要一个很大的装置。首先靶丸要放在一个直径1厘米的黑腔里面,黑腔要放在一个直径达10米的圆形靶室里,球面上有很多的孔,这些孔就是激光的入射孔。靶丸等于处于靶室的最中间,所有的192束激光,最终都要汇聚在微小的靶丸表面来驱动它内爆压缩。整个NIF装置需要安装在一个3个足球场大小的大型建筑里面。

  实际上,类似俗语里的“高射炮打蚊子“,聚变反应需要一个非常大的装置去瞄准一个非常小的目标,所有能量都要聚焦在微小的一个点上。在科学工程、技术和工业上都是非常精细的一个实验。正是因为这个实验实现的难度非常高,它的物理设计必须定量地理解和精确地控制每一个环节。

  另外,还有一点需要告知大家,靶丸上发生的四个步骤,必须在100纳秒内全部完成,所以,数值模拟计算是目前主要的实现手段。做实验之前,要在计算机上做很多模拟。美国实际上从2012年开始做实验,但目前依然没有点火成功,这个挑战非常大。目前的算法和计算能力都没有办法满足需求,这也是一个典型例子。

  前面讲了很多例子,我主要是想告诉大家,目前是我国从事超算软件的研发和算法研究的一个最好的时代,因为有很多的需求,也有很多的挑战。我以去年Science上的一篇文章作为结语。计算机的内容很少在出现在Science上,但这是一篇将近10页的综述性文章。主要是讨论后摩尔时代,如何进一步提升计算能力的问题。因为随着摩尔定律放缓,半导体工艺已经到了物理极限,靠底层的半导体工艺提升性能的时代结束了,可能要有其他的一些新途径出来。所以,在应用和计算机里面,软件和算法怎么做结合,空间是非常大的。

  我来自于高性能数值模拟软件中心,目前在我们国家专门从事这种自主软件研发的中心很少,它的主要目标就是基于我们的超级计算,自主研发我们的一些工业软件,来使得这个超级计算真正成为我们国家的利器。如果大家对超算研究,特别是对软件研发和算法研究感兴趣的话,欢迎关注我们的软件中心。

Produced By 大汉网络 大汉版通发布系统