近日,美国计算机协会(Association for Computing Machinery,简称 ACM)将 2021 年度图灵奖授予田纳西大学电气工程和计算机科学系教授杰克·唐加拉(Jack J. Dongarra),以表彰其在高性能计算发展上的重大贡献,该奖项相当于“计算领域的诺贝尔奖”。
在唐加拉过往的生命中,有很大一部分时间是在计算机科学和数学的世界之间穿梭。谷歌 AI 业务负责人杰夫·迪恩(Jeff Dean)这样评价道, “唐加拉的工作从根本上改变并推动了科学计算。”值得一提的是,在获得表彰的同时,唐加拉还获得了 100 万美元的奖金,谷歌为 ACM 提供了该奖项的财务支持。
对于此次获奖,唐加拉表示,"我对此前的图灵奖获得者有着极大的尊重,我使用过他们的书以及定理,我只希望自己能成为未来计算机科学家的榜样。"
其实,很多科学工作者,甚至包括此前的图灵奖获得者,都曾在某个时候或者是每天都在使用唐加拉所开发的程序和库,如广泛用于系统性能基准测试的线性代数程序 LINPAC、执行科学计算核心的向量和矩阵操作的主力运算库 BLAS 以及用于 GPU 的线性代数库 MAGMA。
图 | 杰克·唐加拉(Jack J. Dongarra)(来源:ACM)
据了解,唐加拉出生于 1950 年,如今已过古稀之年。在他看来,其一生最重要的贡献主要有三个方面。
第一是开发了众多可移植的、适用于高性能机器的数值软件;第二是在计算机的并行处理机制上做了相关工作,如消息传递接口(Message passing interface,简称MPI);第三是开发测量计算机性能的评估技术,如衡量超级计算机能力的 TOP500 测试。
唐加拉称,“这些工作都集中在先进的计算机架构上以及如何非常有效地利用它们。”而唯一主线是,如何让科学家在计算机允许的范围内做他们想做的实验。
为此,唐加拉发明了一些工具,以帮助程序员在各种计算方面拥有更强的掌握能力,其最近专注的是一个叫做 SLATE 的线性代数软件包。
据悉,SLATE 可以在“计算金字塔”(computational pyramid)上运行,从笔记本电脑到台式机、集群以及超级计算机。唐加拉介绍,“用户可以忘记底层的硬件,只需提出线性代数问题,SLATE 会想办法把它分散到数十万个处理器或 GPU 上。”
现在,超级计算在世界范围内盛行,越来越多的人通过云计算来使用超级计算机,这很大程度上归功于唐加拉长年的编程努力。
唐加拉表示,“就计算方式而言,我们正处于一个拐点,传统方式是在这些占据两个网球场大小的机器上进行科学计算,而现在更多是基于云来调用机器"。
他认为,从某种意义上说,超级计算行业在建造超级计算机的传统方式上几乎已经走到了尽头。摩尔定律失效后,组装一台独立的高性能计算机并不是一个可以继续扩展的过程,承担下一个巨大计算时代的应当是云规模系统。
亚马逊、Meta、谷歌等科技巨头拥有巨大的设备和系统资源,而科学家们由于资金的原因,很难将必要的资源落实到位,而云中的商业资源可供科学家们利用,以满足其特定需求。
值得一提的是,唐加拉还关注着中国的超级计算发展,并多次到访中国参与技术交流。他曾在北京考察中国首台千兆次超级计算机“天河一号”,还在 2013 年出席了在长沙举行的国际 HPC 会议,与众多的中国超算科学家进行技术交流。
除超级计算外,线性代数也凭着唐加拉对向量和矩阵以及张量的处理来到了计算的核心。唐加拉表示,“我是一个数学家,对我来说,一切都是线性代数,但世界也在看到这一点。事实上,机器学习和人工智能中的大多数问题,都可以追溯到线性代数中的‘永恒计算组件’。”
此外,唐加拉还注意到科学家和软件编写者的编程语言需求。当被问及更推荐哪种软件编程范式,他表示,Julia、MatLab 都较为不错。
他谈到,今天需要的软件编程范式是 “以简单的方法来表达所有计算”,也就是线性代数的计算,如矩阵乘法。
这也正是唐加拉多年来一直在做的事情,即轻松地表达事物,并获得底层硬件的性能。具体而言,就是通过更多的工具来抽象化细节,让科学家更有生产力。
目前,唐加拉的兴趣所在是 AI 技术,他对 AI 为工程和科学带来的好处有着坚定的信念,并正在努力研究各类基于线性代数的机器学习算法。
他表示,“机器学习是一个巨大的工具,我们才刚刚开始了解如何使用机器学习等 AI 技术来帮助解决科学问题。它也许不会直接解决我们的问题,但它将成为帮助我们解决问题的好伙伴。”