查看原文
其他

拿下图灵奖的程序员

为开发者服务的 21CTO 2023-01-28

导读:在 1970 年代,Jack Dongarra 创造了一套代码和概念,使软件能够轻松地与世界上最强大的超级计算机一起工作。


2022图灵奖获得者

美国计算机协会(ACM)在今年6月宣布,现年 72岁的 Jack Dongarra (杰克唐加拉)博士将其在数值算法和代码库方面的贡献而获得2022年的图灵奖(ACM A.M. Turing Award)。

图1 ACM官网上对Jack Dongarra的介绍

Dongarra 的数值算法和开源代码库成果(numerical algorithms and libraries),使软件能够与40多年来指数级硬件的步伐保持同步,从笔记本电脑到世界上最强大的百亿亿级超级计算机上都可以运行,极大推动了高性能计算的发展。

就连Jack Dongarra也很难相信用来表示“百亿亿级”计算的数字:10的18次方。这个数字代表每秒 1,000,000,000,000,000,000 次运算,仅一台百亿亿级超级计算机就可以达到的计算能力。用超算的术语来说,它被称为 exaflop。

70出头的 Dongarra 在过去的 40 多年里帮助推进了创建百亿亿级超级计算机所必需的数值算法和软件、并行计算编程和性能基准测试。要知道,每台超级计算机都有两个网球场那么大。

Dongarra 拥有芝加哥州立大学数学学士学位、伊利诺伊理工学院计算机科学硕士学位、新墨西哥大学应用数学博士学位。

Jack Dongarra 已获荣誉与奖项,可谓个个都闪着金光:

  • 美国科学促进会会士(1995);

  • IEEE会士(1999);

  • Elected to the National Academy of Engineering (2001); 

  • ACM 院士 (2001);

  • IEEE Sid Fernbach 奖(2003 年);

  • IEEE 可扩展计算卓越奖章(2008 年);

  • SIAM 超级计算职业奖活动组;

  • IEEE 计算机学会查尔斯·巴贝奇奖(2011 年);

  • ACM/IEEE 肯尼迪奖 (2013);

  • SIAM/ACM 计算科学奖(2019 年);

  • 英国皇家学会外籍院士(2019);

  • IEEE计算机先驱奖(2020);


关于ACM

ACM 图灵奖的名字取自Alan M.Turing。自 1966 年成立以来,主要奖励在计算机事业有突出贡献的个人,其要求极高,评奖程序极严,一年仅授予一位计算机科学家,因此称为计算机界中的诺贝尔奖。

目前图灵奖的奖品由Google提供赞助,包括一只银碗与 100万美元奖金。

图2 图灵奖的银碗

背景

Jack J. Dongarra 于1950 年7月18日出生在美国芝加哥的一个西西里移民家庭。

他自认为小时候是一个非常不起眼的学生,被未确诊的阅读障碍所困扰。只有他到高中时,他才开始将科学课与他对拆解和修理机器的爱好联系起来。

Dongarra 在芝加哥州立大学主修数学,他认为这可以很好地结合想从事的教育工作,为他在高中为教学的努力做扩展。

他是家里第一个上大学的人,上学时他住在家里,在一家比萨饼店打工以支付学费。

个人经历与Linkpack

20 世纪 70 年代后期,在芝加哥郊外阿贡国家实验室里任研究员的Jack Dongarra,他在这间办公室中编写了名为 Linpack (线性代数包的缩写)的第一行代码。

Linpack 提供了一种在超级计算机上运行复杂数学的方法。后来成为科学实验室的重要工具,它有效扩展了计算机的功能范围,包括预测天气模式、模拟经济和模拟核爆炸等重要场合。

在 1990 年代初期,除了使用 Linpack代码,Dongarra 博士和合作者还创建了一种可以衡量超级计算机能力的新型测试体系。他们专注于每秒可以运行多少计算。这成为比较地球上最快的计算机器,掌握它们可以做什么以及了解它们需要如何改变的主要方式。

“科学界人士常说:'如果你无法测量它,你就不知道它是什么,'”,美国能源部百亿亿级计算项目的负责人梅西纳说,该项目旨在为美国顶级超级计算机构建软件. “这就是为什么 年,Dongarra 的工作非常重要。”

图3 1980 年,Dongarra 博士在阿贡国家实验室使用TECH 4081 工作站

Dongarra 是田纳西大学的计算机教授,也是位于该大学附近的橡树岭国家实验室的研究员。他潜心研究线性代数,这是一种支持计算机科学中许多最强大任务的数学. 包括用计算机从气候和经济的模拟到模仿人脑的AI技术的全部。

Linpack 是 Dongarra 与几个实验室的研究人员共同开发的,它被称为软件库,帮助研究和开发人员在各种机器上运行这类线性代数的运算。

“基本上,当你要解决工程、物理、自然科学或经济学问题时,这些都是你需要的算法,”美国南加州大学计算机科学教授 Ewa Deelman 说,Dongarra 专门研究超级计算机使用的软件。“他们的工作是让科学家使用他们的产品。”

几十年来,Dongarra 博士不断改进和扩展 Linpack ,并为新型超级计算机定制软件库。Dongarra 还开发了可以提高超级计算机的能力与效率的算法,随着机器内部硬件的不断改进,他的软件库也在不断迭代、改进。

到了 20 世纪 90 年代初期,科学家们无法就衡量超级计算机进步的最佳方法达成一致。

因此,Dongarra 博士与他的同事们创建了 Linpack 基准测试,并开始发布世界上最强大的 TOP-500 台超级计算机的清单。

并且,Dongrarr 每年更新和发布两次的Top500 榜单(https://www.top500.org/)——这引发了全世界科学实验室之间的竞争,看哪个国家能制造出最快的机器?!

随着日本和中国的实验室向美国的传统据点发起挑战,最初看上去像是吹牛的话逐渐形成了各自的战场,而且几方还在不断创造自己的优势。

“你在一个国家中拥有多少计算能力,与你可以解决问题类型之间存在直接的平行关系”。

图4 1979 年,Dongarra 博士(左)与 Linpack 软件团队在阿贡实验室附近

学术成果

40多年来,Dongarra成了LINPACK、BLAS、LAPACK、ScaLAPACK、PLASMA、MAGMA和SLATE等许多库的主要实现者或主要研究者。
这些库大部分已经开源,它们是为单处理器、并行计算机、多核节点和多GPU节点而编写的,体现了他许多深刻的技术创新。

图5 Dongarra在讲解自己的技术

例如下列技术:
自动调优:Dongarra在ATLAS项目中设计出一种开创性方法,能以自动方式查找出能够生成近最优效率线性代数内核的算法参数,且表现优于原有代码;
混合精度算数:Dongarra在2006年全球超级计算大会上的论文Exploiting the Performance of 32 bit Floating Point Arithmetic in Obtaining 64 bit Accuracy里,率先利用多精度浮点算数加快了高精度解决方案的交付速度,该成果已经在机器学习领域发挥重要作用,让世界顶级的超级计算机实现了前所未有的性能水平。

批处理计算:Dongarra开创了将大型密集矩阵的计算划分为可独立和并行计算的范式,常被用于模拟、建模和数据分析。

他还领导了许多其他研究:消息传递接口(MPI)。
MPI 是并行计算架构中可移植消息传递的事实标准;以及性能 API(PAPI),它提供了一个接口,允许从异构系统收集和合成来自组件的性能。他创建了标准(例如 MPI、LINPACK基准测试和 Top500 超级计算机列表)支撑着从天气预报到气候变化再到分析大型物理实验数据的计算任务。
超级计算机与云计算

在 2000 年代,最强大的计算机开始将数千台微型计算机连接成一个巨大整体的超级计算机,每台计算机都配备了用于台式 PC 和笔记本电脑相同类型的芯片。

在随后几年里,亚马逊、谷歌和微软“云计算”服务蓬勃兴起,这些服务将更多的小型机器连接了起来。

Dongarra博士说:云服务是科学计算的未来。因为亚马逊、谷歌和其他互联网巨头,在中国还有百度、阿里巴巴和腾讯,它们构建了新型的计算机芯片,可以以过去从未有过的速度和效率训练人工智能系统。

“这些公司正在为自己的需求量身定制芯片,这将对 IT 业界产生更深远的影响,”他说。“我们将更多地依赖云计算,最终放弃今天在国家实验室内部的‘大块头’的机器。”

另外,科学家们还在开发一种称为量子计算机的新型计算机,相比现在的计算机,仅在速度一项,它可以让今天的机器看起来像是玩具。

随着世界计算机技术的不断发展,它们将需要新的测试基准。

“计算机的制造商会吹嘘这些事情,”Dongarra博士说,“问题是:现实情况是什么?”

作者:洛逸


相关阅读:

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存