文|陈根
20世纪70年代末,一位阿拉贡国家实验室的年轻研究员参与编写了名为“Linpack”的计算机代码,这段代码也让那些被后世称为超级计算机的系统可以运行复杂的数学计算。
20世纪90年代初,这位研究员和他的同事们利用“Linpack”,又创造出了一种用于衡量超级计算机能力的测试,也就是测试超算每秒能进行多少次计算。
当地时间3月30日,还是这位研究员,获得了2021年计算机领域的最高奖项——图灵奖,他就是美国计算机科学家 Jack J. Dongarra。根据 ACM 的介绍,Dongarra 的算法和软件推动了高性能计算的发展,对人工智能、计算机图形学等多个计算科学领域均产生了重大的影响。
Dongarra 和高性能计算
图灵奖通常被称为计算机领域的“诺贝尔奖”,图灵奖是以英国数学和计算机科学的鼻祖阿兰·图灵的名字命名的,著名的图灵测试(测试机器是否智能)就是由图灵提出,图灵奖获奖者也将得到100万美元的资金支持。此次Dongarra 之所以被授予无上荣誉的图灵奖,就在于其对于高性能计算做出的巨大贡献。
要知道,对于已经到来的数字时代,计算就是引擎,数据则是燃料。小到智能电脑、智能手机、平板等电子产品,大到天气预报、边界出行、医疗保障、清洁能源等民用领域拓展应用,都离不开计算的赋能支撑。计算已经成为人类能力的延伸,赋能数字经济各行各业的数字化转型升级。
正如美国学者尼葛洛庞帝(Nicholas Negroponte)在《数字化生存》一书的序言中所言“计算,不再只是与计算机有关,它还决定了我们的生存”。
其中,高性能计算(HPC)也就是我们通常所说的“超级计算机”,高性能计算机概念出现在20世纪80年代末至90年代初,随着大规模并行处理的出现,超级计算机开始由数十万个处理内核组成。
高性能计算机具有极高计算能力,能够高速解决非常复杂的问题。由于超级计算机运行成本很高,主要由国家主导其发展,也主要应用于国家安全领域(如核模拟)、科学与医学研究以及气候建模等方面。
具体来看,Dongarra通过对线性代数操作的高效数值算法、并行计算编程机制和性能评估工具的贡献,引领了高性能计算的世界。近四十年来,摩尔定律使硬件性能呈指数级增长。在同一时期,虽然大多数软件未能跟上这些硬件进步的步伐,但高性能数值软件却做到了。这在很大程度上正是得益于Dongarra的算法、优化技术和生产质量的软件实现。
这些贡献奠定了一个框架,使科学家和工程师在大数据分析、医疗保健、可再生能源、天气预测、基因组学和经济学等领域做出了重要的发现和改变游戏规则的创新。Dongarra的工作还帮助促进了计算机架构的跨越式发展,并支持了计算机图形和深度学习的革命。
Dongarra的主要贡献在于创建了开源软件库和标准,这些软件库采用线性代数作为中间语言,可供各种应用使用。这些库已经为单处理器、并行计算机、多核节点和每个节点的多个GPU编写。Dongarra的库还引入了许多重要的创新,包括自动调谐、混合精度算术和批量计算。
Dongarra在说服硬件供应商优化这些方法,以及说服软件开发者在他们的工作中使用他的开源库方面处于领先地位。最终,这些努力使得基于线性代数的软件库在从笔记本电脑到世界上最快的超级计算机的高性能科学和工程计算中几乎被普遍采用。
计算是数字时代的引擎
1970 年,Intel 4004处理器每秒可以处理 92000 条指令,而现在,人们的普通手机就可以达到每秒处理 10 亿条指令,电脑也越来越强大,能够存储越并处理这些庞大的数据。但这对于处理更加庞大的数据来说还是远远不够的,而基于高性能计算,却能够远超传统计算机的计算速度。
根据ACM主席Gabriele Kotsis的解释,今天最快的超级计算机在一秒钟内进行四百万亿次计算,这令人难以置信。而除了打破新记录以外,高性能计算还一直是科学发现的一个主要工具。
实际上,人类文明的发展从来都离不开计算力的进步。在原始人类有了思考后,才产生了最初的计算。从部落社会的结绳计算到农业社会的算盘计算,再到工业时代的计算机计算。
计算机计算也经历了从上世纪20 年代的继电器式计算机,到40年代的电子管计算机,再到 60年代的二极管、三极管、晶体管的计算机,其中,晶体管计算机的计算速度可以达到每秒几十万次。集成电路的出现,令计算速度实现了80年代,几百万次几千万次,到现在的几十亿、几百亿、几千亿次。
人体生物研究显示,人的大脑里面有六张脑皮,六张脑皮中神经联系形成了一个几何级数,人脑的神经突触是每秒跳动200次,而大脑神经跳动每秒达到14亿亿次,这也让14 亿亿次成为计算机、人工智能超过人脑的拐点。可见,人类智慧的进步和人类创造的计算工具的速度有关。
从这个意义来讲,算力是人类智慧的核心。当我们把计算用以解决实际问题时,算力便改变了现有的生产方式,增强了存在者的决策能力和信息筛选能力。
比如,寻找MH370航班残骸中,大量的卫星雷达将集中对准南印度洋,当这些高科技眼睛采集到信息后,一个必经的环节是雷达数据处理,担当这一环节的角色即是超级计算机。清华大学地球系统科学研究中心副教授黄小猛认为“只要有足够精确的相关数据,超算就能找到失事飞机”。
此外,在环境监测放面,超级计算可以帮助进行污染物扩散的模拟。通过超算模拟,可以根据目前污染物的情况,计算出未来一段时间的大气污染物浓度和分布,进行空气质量预报。从预报结果还可以计算出哪些污染源影响贡最大,了解污染的来龙去脉,为污染防控提供决策指导。
医疗领域,模拟血流、模拟心脏、模拟人体任何一个部分,都离不开超级计算机。美国科学家曾利用世界前十的超级计算机,选取一名真人扫描其血管系统,通过3D建模技术建立动脉系统模型,成功地再现了整个人体的动脉系统。任何直径或宽度在1毫米以上的动脉血管都会出现在模型中,而且模型的分辨率达到了9微米。
比如,对一个可能发生脑梗塞病人,医院难以判断是否要进行支架手术,一般都会通过从大腿动脉处放进测压导丝进行测量,但这种方式既危险又痛苦。而如果在超级计算机的帮助下,经过模拟计算,只要血流储备分数如果小于0.8,就可以进行手术。也就是说,只要运算核够多、速度够快,医疗工作者的诊断和治疗水平将大大提升,而科学的治疗手段更容易让患者接受。
推动人工智能的发展
高性能计算的创新还溢出了许多不同的计算领域,推动了算力时代的发展,尤其是在人工智能方面。
众所周知,数据、算法和算力是人工智能三大核心要素,数据是人工智能发展的基石和基础,算法是人工智能发展的重要引擎和推动力,算力则是实现人工智能技术的一个重要保障。人工智能除了训练需要算力,其运行在硬件上也需要算力的支撑,可以说,算力构筑了人工智能的底层逻辑。
当前,人工智能的发展还在智能感知阶段,在智能认知方面还没有很成熟的研究。从这个角度而言,人工智能对计算能力的需求可以说是潜力非常大。无疑,人工智能有大量的数据、训练任务需要超级计算的支持,同时高性能计算也可以把人工智能应用到新的领域,比如利用人工智能更精准地完成天气预报等。
其中,在混合精度算术领域,在Dongarra2006年超级计算会议的论文《利用32位浮点算术的性能获得64位精度》中,Dongarra开创了利用浮点算术的多个精度来更快地提供精确的解决方案。这项工作在机器学习应用中发挥了重要作用,最近的HPL-AI基准测试就展示了这一点,它在世界顶级超级计算机上达到了前所未有的性能水平。
并且,从长远来看,人工智能与高性能计算可能还存在更深层的关系——毕竟,转变人工智能的初衷就是从人的智能向计算转变的一个启发。当前,高性能计算与人工智能的深度融合,已经是大势所趋。自2018年6月以来,新上榜TOP500的超级计算机,前十名都声称有支持人工智能的能力。
比如,Summit超级计算机就是“非常典型支撑AI”的高性能计算机。Summit胖节点的设计使其单节点存储容量相当大,GPU的访存也非常可观。综合下来,一个胖节点的计算能力相当强,基本可满足大多人工智能“一个模型放在里边做”的需求。
当前,Summit支撑AI的能力已经达到3.3E,高性能的胖节点设计使系统总节点数减少,从而降低了应用扩展难度,大容量的多级高效存储及其间的硬件一致性支持,加之高速好用的本地存储等的综合作用下,使其局部的计算能力非常强,非常适合深度神经网络(DNN)这类人工智能应用的提升。
可以说,Jack Dongarra的工作从根本上改变和推进了科学计算,正如谷歌高级研究员Jeff Dean所称赞的那样:“他在世界最大量使用的数值库的核心所做的深入而重要的工作是科学计算的每一个领域的基础,帮助推动了从药物发现到天气预报、航空航天工程和其他几十个领域的发展,他对描述各种计算机性能的深入关注带来了非常适合数值计算的计算机架构的重大进展。”
高性能计算技术是趋势,也是未来,在量子计算技术没有获得彻底的突破之前,基于当前的物理性能与人工智能的融合路径将会是接下来一段时间的突破方向。而未来的高性能计算技术,或许将会是基于量子计算与人工智能融合的真正超级计算技术。