年轻时,杰克·唐格拉认为自己可能会教高中生科学。这就是他在芝加哥州立大学(Chicago State College)入学时的计划。1972年他毕业时,芝加哥州立大学已经变成了芝加哥州立大学。在他的学习过程中,他开始对计算机着迷。在他大四的时候,物理学教授哈维·莱夫建议他申请在附近的阿贡国家实验室实习,在那里他可以获得一些计算机经验。
在那里,唐加拉加入了一个开发EISPACK的小组,这是一个用于计算特征值的软件库,特征值是线性代数的组成部分,对进行化学和物理模拟很重要。这是一次令人兴奋的经历。唐加拉回忆说:“我并不是一个非常优秀的学生。“我被扔进了一个四五十人的小组,他们来自全国各地的顶尖大学,我可以和他们混在一起。”项目负责人布莱恩·史密斯成为了他的导师。“他对我非常非常有耐心。我在计算机方面的背景不是很丰富,但他关注我,引导我。”
这次经历改变了他的计划。在获得数学学位后,他开始在伊利诺伊理工学院(Illinois Institute of Technology)攻读计算机科学硕士课程。这是他职业生涯的开始,在此期间,他创建了允许程序在各种处理器上运行的软件库,从而推动了高性能计算的发展。正是因为这项工作,唐加拉被提名为2021年ACM A.M.的获奖者图灵奖。
在读研究生时,他继续每周在阿贡工作一天。毕业后,他在实验室找到了一份全职工作,继续从事EISPACK的工作。这个软件是可移植的,所以它可以在不同的机器上运行。他说:“我们在某种程度上希望这种情况在今天发生,这是一件理所当然的事情,但在那个年代,这并不容易做到。”
那时,计算机之间还没有标准化。今天,被称为IEEE算术的标准定义了计算机如何处理数字,但在20世纪70年代,IBM的机器不会像控制数据公司的机器那样使用相同数量的比特来表示数字,而UNIVAC的计算机与两者都不同。EISPACK被设计成能够在这些机器上运行,并且只做了很小的改动。
唐加拉随后又开发了LINPACK,这是一个线性代数软件库,用于求解方程组。“我们在LINPACK和EISPACK中所做的实际上是许多科学计算的基础,”Cleve Moler说,他当时是该项目的同事,也是新墨西哥大学(UNM)的教授,后来创立了计算软件公司MathWorks。莫尔说服唐加拉来新墨西哥州和他一起学习。唐加拉离开阿贡,搬到了阿尔伯克基,1980年他在新墨西哥大学获得了应用数学博士学位。在攻读博士学位期间,他还在洛斯阿拉莫斯国家实验室(Los Alamos National Laboratory)工作,那里安装了第一台克雷(Cray)超级计算机,这给计算机科学家们带来了一项挑战,即让算法在其新颖的架构上运行。通过使用一个后来被称为LINPACK基准测试的测试程序,唐加拉发现了一个导致Cray给出错误答案的计时错误。
1989年,唐加拉被田纳西大学和橡树岭国家实验室提供了一个联合职位。他接受了,并一直待到今天。他说,这一举动让他得以从事一些教学工作,而在学术界工作让他具有创业精神,这是一个国家实验室无法做到的。
唐加拉的老朋友莫勒说,唐加拉的成功得益于他的智慧和个性。Moler说:“这是科学能力和谦逊的完美结合。”“他没有任何不可告人的目的。他不是为了证明自己。他一直在前进,老杰克。”
在他的职业生涯中,唐加拉参与了许多图书馆的创建。例如,LAPACK将LINPACK和EISPACK合并成一个统一的包。另一个是BLAS,即基本线性代数子程序,被该杂志命名自然去年被列为改变科学的10种计算机代码之一。唐加拉对这个称号笑了。他说:“我不确定这是否和他们当初的做法一样,但我愿意接受。”BLAS是“某种计算内核,如果你愿意的话,是这些其他库的基本构建块”。
唐加拉说,由于许多人的努力,BLAS最终成为事实上的标准。“社区里的一群人聚在一起说,‘做这些事情的最好方法是什么?我们争论、打架、一起喝啤酒,最终想出了一个包装,并向社区提供了它,然后在它被确定之前进一步投入如何改进它。”
唐加拉说,在他设计的软件库中,有三种品质一直很重要。一是它们可以成为标准。其次,它们应该是可移植的,并且能够在具有不同架构的不同机器上工作,包括单处理器、并行计算机、多核节点,以及最近的包含多个图形处理单元的节点。
第三个特点是它们必须高效运行,而在计算机硬件不断进化的情况下,这并不总是容易做到的。他说:“每隔几年,硬件就会发生变化,如果你不改变软件来适应这些硬件的变化,你的软件就会变得效率低下。”“我们总是在追赶,试图重新设计软件以匹配建筑功能。”
“这是科学能力和谦逊的完美结合。他没有任何不可告人的目的。他不是为了证明自己。”
随着并行计算的发展,20世纪90年代出现了一个这样的挑战。最初,计算发生在单个处理器上,按顺序执行操作。后来出现了共享内存的并行处理器。它们让位于分布式并行处理器,每个处理器都有自己的内存。这就提出了如何在处理器之间传递信息的问题,而每个计算机公司的回答都不同。唐加拉说:“从编写供他人使用的软件的角度来看,这将是一场灾难。”他通过与一个国际协作小组创建消息传递接口(Message Passing Interface)解决了这个问题。
他处理硬件差异的另一种方法是通过自动调优。在他的自动调优线性代数软件库项目中,自动调优探测了不同的芯片设计,以发现它们的基本特征,比如它们有多少内存缓存。然后,它使用机器学习创建一个程序的数千个版本,每个版本都有轻微的变化,并在每种架构上运行它们,以找出最高效的。
在他对效率的无尽追求中,唐加拉开发了批量计算,它将大型矩阵的计算(用于模拟和数据分析)分解成更小的块,可以在不同的处理器之间解决。
他还开发了混合精度算法。执行数值计算的标准方法是使用64位浮点算法,它产生高精度的结果。然而,在不断发展的人工智能领域,这种精度并不总是必需的,一些工作可以以16位的精度完成,并在四分之一的时间内完成。混合精度算法可以帮助程序员找出他们工作的哪些部分需要64位精度,哪些可以在16位完成,从而使整个系统更加高效。
唐加拉与同事们一起创建了Top500,这是一份世界上500台最强大的超级计算机的名单,根据它们在LINPACK基准测试中的表现排名。该排名每年发布两次,他预测6月份的榜单将包括第一台百亿亿次计算机,这种计算机每秒至少可以进行百亿亿次计算。出于对这一点的预期,他一直在与世界各地的同事合作,制定针对这种强大机器的软件应该是什么样子的路线图。
图灵奖有100万美元的现金奖金,唐加拉说,他不确定自己会用这笔钱做什么。他还沉浸在这份荣誉中。“这是一种势不可挡的局面,”他说。“这些获得这个奖项的人是该领域的领导者。我的书架上有他们的书,我读过他们的论文,使用过他们的技术。这是不可思议的。我必须感谢一代又一代的同事、学生和员工,他们的工作和想法多年来影响了我。我希望我能不负图灵奖所认可的所有伟大,并成为下一代计算机科学家的榜样,就像许多获奖者所做的那样。”
数字观看唐加拉在独家新闻中讨论他的工作通信视频。//www.eqigeno.com/videos/2021-acm-turing-award
©2022 0001 - 0782/22/6 ACM
如果您不是为了盈利或商业利益而制作或分发本作品的部分或全部,并在第一页注明本通知和完整引用,则允许您免费制作本作品的部分或全部数字或纸质副本,供个人或课堂使用。本作品的组成部分必须由ACM以外的其他人享有版权。信用文摘是允许的。以其他方式复制、重新发布、在服务器上发布或重新分发到列表,需要事先获得特定的许可和/或费用。请求发布的权限permissions@acm.org或传真(212)869-0481。
数字图书馆是由计算机协会出版的。版权所有©2022 ACM股份有限公司
没有发现记录