|
马上注册 与译者交流
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
博士杰克-东加拉博士
美国 - 2021 年
表彰
表彰他在数值算法和库方面做出的开创性贡献,这些算法和库使高性能计算软件在过去四十多年里能够跟上硬件的指数级改进。
简短注释
参考文献
ACM 图灵奖
演讲视频
研究
主题
Jack J. Dongarra 于 1950 年出生在芝加哥的一个西西里移民家庭。在他的记忆中,自己是个成绩平平的学生,患有未确诊的阅读障碍症。到了高中,他才开始将科学课与自己喜欢拆卸和修理机器的爱好联系起来。Dongarra 在芝加哥州立大学主修数学,他认为这门课程与教育课程结合起来,可以让他为高中教师职业做好准备。作为家里第一个上大学的人,他住在家里,在一家披萨店打工以支付学费。
EISPACK
1972 年,Dongarra 开始在附近的阿贡国家实验室进行本科生实习。Brian Smith 是 Dongarra 的导师,他是一位年轻的研究员,当时主要研究 EISPACK。 从力学、地质学到谷歌的 PageRank 算法,矩阵特征值计算在科学计算和建模的许多领域都至关重要。詹姆斯-H-威尔金森(James H. Wilkinson)最近因与克里斯蒂安-H-莱因施(Christian H. Reinsch)合作开发出针对电子计算机优化的新矩阵方法而获得图灵奖。但是,新方法在数学上非常复杂和微妙,因此大多数程序员仍在使用大学教科书中的方法。EISPACK 项目旨在开发精确、稳健、高效、文档齐全且可移植的 FORTRAN 子程序,以实现矩阵特征值和特征向量计算的新方法。科学家和工程师可以根据需要调用这些代码编写的程序来解决问题。
Dongarra 被要求通过 EISPACK 运行测试问题,并向开发人员报告错误。这段经历让 Dongarra 对计算机产生了浓厚的兴趣,并激发了他对数值方法的兴趣。他放弃了攻读物理学硕士学位的计划,很晚才申请到伊利诺伊理工学院的计算机科学专业。他继续每周一天在阿贡工作,布莱恩-史密斯(Brian Smith)是他硕士论文的导师。
EISPACK 于 1974 年发布。那时,Dongarra 已在阿贡全职工作。他回忆起在那里的经历时说"从我还是本科生时第一次去那里直到我离开,都是一段非常非常积极的经历 ....。那里的工作环境非常好,非常丰富,也非常刺激"。然而,他很快意识到,要在新的职业生涯中取得进步,他需要博士学位。他请假进入新墨西哥大学攻读数学博士学位,师从克莱夫-莫勒(Cleve Moler)。在新墨西哥学习期间,Dongarra 兼职研究如何调整现有的方法和算法,使其能够在洛斯阿拉莫斯的 Cray 1 计算机的新型矢量架构上有效运行。
LINPACK
EISPACK 之后又推出了 LINPACK,用于解决线性方程组和线性最小二乘法问题。该项目由 G.W. "Pete" Stewart 发起,他与 Cleve Moler 和 Jim Bunch 这三位与阿贡社区有联系的学者合作。Dongarra最初的主要职责是开发一个测试软件包及其组件的框架。每年夏天,设计团队都会在阿贡重新召集,测试和整合一学年中产生的代码。到项目结束时,据斯图尔特说,"杰克表现出了非凡的潜力",这让他们相信 "给他一个机会,让他成为主要作者"[ii]。
LINPACK 很快成为那个时代最重要的数学软件包之一。20 世纪 80 年代,从超级计算机到 Unix 工作站和 IBM 个人电脑,LINPACK 几乎适用于科学家和工程师使用的所有计算机模型。这种非凡的灵活性在很大程度上来自于它对 BLAS(基本线性代数子程序)的使用。BLAS 的概念大约起源于 1972 年美国国家航空航天局喷气推进实验室的 Charles Lawson 和 Richard Hanson。BLAS 规范定义了一系列简单的向量运算,每种运算都有一个标准的调用序列。LINPACK 是第一个使用 BLAS 的主要软件包,这两个项目建立了共生关系。
LINPACK 附带了一本内容丰富的用户指南。"在那本书的附录中,"Dongarra 回忆道,"我收集了一些关于各种机器的计时信息。这样做的目的是让用户了解,如果使用我们的软件,解决他们的问题需要多少时间。"对于示例问题,他选择了一个最大的矩阵,该矩阵可以在列表中的所有十几台机器上处理。这个性能时间列表不断扩大,成为衡量机器浮点性能的标准。计算机供应商自豪地引用基准成绩,并对自己的产品进行调整,以优化性能。该列表的结果从数百个增加到数千个。时至今日,在 LINPACK 被其他用途取代很久之后,TOP500 项目仍在使用该基准来创建一个被广泛引用的超级计算机性能排行榜。
这段 ACM 视频重点介绍了 Dongarra 的一些主要成就。
网利布
20 世纪 80 年代,Dongarra 的其他项目之一是创建数学软件库 NETLIB。Dongarra 在斯坦福大学读研究生期间结识了一些朋友,其中包括著名数字分析家 Gene Golub 和一位名叫 Eric Grosse 的年轻学生。戈卢布提出了建立一个电子软件库的想法,以确保学生在研究过程中编写的代码能被其他人找到并重复使用。1985 年左右,当时在贝尔实验室工作的 Dongarra 和 Grosse 决定将这一想法变为现实。在早期版本中,NETLIB 是通过电子邮件工作的--程序会从收到的电子邮件中提取请求,并回复编码信息,从中可以重新组装所请求的代码[iii]。格罗斯和东格拉担任编辑,决定哪些软件值得收录。许多现有软件库中的代码,如 ACM 的《数学软件交互》(Transactions on Mathematical Software)中的例程,最终都被合并到 NETLIB 中。
田纳西大学
1989 年,Dongarra 离开阿贡,接受了田纳西大学诺克斯维尔分校特聘教授和附近橡树岭国家实验室特聘科学家的双重任命。东格拉认为,"这将使我能够成为一名教授,拥有学生,并做其他在实验室可能不那么容易做的事情"。一开始,他的小组只有一名研究生助理。到 2004 年,创新计算实验室已经发展到 "约 50 人,包括研究教授、博士后、研究助理、研究生、本科生、程序员、艺术家、秘书人员、电脑维护人员以及支持人员"。除东格拉本人外,整个团队还得到了国家自然科学基金、DARPA 和能源部等机构的资助和研究合同的支持。
LAPACK 和 BLAS
虽然 LINPACK 非常灵活,但它无法充分利用矢量处理超级计算机和共享内存并行机的强大功能,在 20 世纪 80 年代中期,最重要的超级计算机分别是 Cray-1 和它的多处理器稳定伴侣 Cray X-MP。Dongarra 的下一个重要项目 LAPACK 用针对新架构优化的函数取代了 LINPACK 和 EISPACK。Dongarra 和加州大学伯克利分校的 James Demmel 是该项目的主要设计者。第一次公开发布是在 1992 年,随后在 1994 年和 1999 年发布了主要版本。到本世纪初,曾经作为 Cray 机器特征的奇特架构特性,如长指令流水线、矢量处理能力和共享内存多核架构,逐渐成为个人计算机的标准特征。
LAPACK 是与新的 BLAS 规范同步开发的。最初的 1 级 BLAS 仅涵盖标量、矢量和矢量-矢量操作(即最多处理两个矩阵中的单个列的操作)。这就迫使应用程序编程人员做出重大改变,以便针对特定的矢量处理、高速缓冲存储器或多处理器架构进行优化。新的 BLAS 实现涵盖了组合矩阵和矢量(第 2 级)以及两个矩阵(第 3 级)的标准操作。 这种更高层次的抽象是 LAPACK 能够在各种架构上高效运行的关键。
虽然 BLAS 是高性能可移植软件的基础,但并非所有计算机制造商都为其机器提供了高质量的实现。由 Dongarra 的学生开展的 ATLAS 项目自动创建了针对特定计算机架构的高度优化 BLAS。ATLAS 在探测所运行机器的性能后,会生成每个 BLAS 例程的许多不同版本,并通过实验确定其中哪个版本能提供最佳性能[iv]。
分布式计算
Dongarra 一直在努力应对新计算机架构给线性代数带来的挑战。LAPACK 在只有少数处理器共享一个内存的计算机上运行良好。但超级计算机架构在不断发展,出现了大规模并行超级计算机和联网个人计算机集群。由数以千计的廉价处理器组成超级计算机的想法很有吸引力。然而,现有的应用、算法和软件工具只能释放硬件理论性能的极小部分。
我们面临的挑战是将一项大型工作拆分成许多独立的小任务,然后找到一种高效的方法,通过进程间交换信息来协调它们的运行。1993 年首次发布的 ScaLAPACK(可扩展 LAPACK)针对分布式内存计算机进行了优化。它依赖于 PVM(并行虚拟机),这是一种由 Dongarra 团队开发的标准机制,用于为应用程序提供虚拟并行计算机,使其不受运行集群细节的影响。许多其他科学计算项目也迅速采用了 PVM。
在为分布式计算创建消息传递接口(MPI)的过程中,Dongarra 也发挥了至关重要的作用。1994 年,Dongarra 小组商定了该标准的第一个版本。他回忆说:"MPI 是由来自商业机构、学术机构、研究中心和供应商的 20 人组成的委员会设计的,他们都将自己的想法倾注到这个软件包中 ...."。MPI 很快被广泛采用,成为应用程序员使用多种语言控制分布式进程间通信和同步的标准接口。
近期工作
大多数数值算法都使用浮点数。现代处理器通常提供 32 位和 64 位数字表示的运算能力。使用 64 位数字表示法运算更精确,而使用 32 位数字表示法运算通常要快得多。在 2006 年超级计算大会论文 "利用 32 位浮点运算性能获得 64 位精度 "中,Dongarra 展示了如何创造性地结合这些功能,在不牺牲精度的情况下最大限度地提高速度。他介绍的这种技术很快成为机器学习系统的标准做法,既减少了内存使用量,又大大提高了性能。
到 2010 年代,超级计算机正在进行另一场架构变革。制作逼真的 3D 图形需要大量的计算能力。视频游戏玩家的需求推动了越来越复杂的图形卡的诞生,其处理能力很快超过了传统处理器芯片。高端图形芯片每个都集成了数百个并行工作的处理器内核,并且可以重新编程,以处理科学计算和人工智能所必需的任务以及图形渲染操作。超级计算机可并行运行数千个这样的芯片。Dongrarra 在其 2016 年的论文 "GPU 的批量 GEMM 性能、设计和自动调整 "中描述了一种新方法。该方法的核心是将大型矩阵计算自动划分为可独立处理的小块。新方法在 MAGMA 和 SLATE 软件库以及 BLAS 的另一种重构:分批 BLAS 标准中得以实现。
Dongarra 主要在田纳西大学和橡树岭大学工作,1990 年被评为大学特聘教授。他还作为图灵研究员与曼彻斯特大学和莱斯大学的高性能计算研究人员建立了长期联系。自 1992 年以来,他一直担任《高性能计算应用国际期刊》的主编,并创建了工业与应用数学学会的超级计算兴趣小组。
在 Dongarra 漫长的职业生涯中,发生了许多变化,但他帮助创建的软件比以往任何时候都更加重要。他已成为超级计算用户社区的公众形象代言人。科学计算用户不再每次需要运行新计算时都编写 FORTRAN 代码,但来自 Dongarra 项目的代码已被纳入 MATLAB、Maple、Mathematica 和 R 编程语言等工具中。从高性能视频游戏、人工智能算法驱动的在线服务到准确的天气预报,高效的矩阵运算是我们日常依赖的许多计算服务的基础。
作者:托马斯-海托马斯-海
J. J. Dongarra,"Thomas Haigh 的口述历史访谈,4 月 26 日",工业与应用数学学会,费城,宾夕法尼亚州,2004 年;见 http://history.siam.org/oralhistories/dongarra.htm。本简介中所有未注明出处的 Dongarra 语录均摘自这一资料来源。
[ii] G. W. P. Stewart,"Thomas Haigh 的口述历史访谈,3 月 5-6 日",工业与应用数学学会,宾夕法尼亚州费城,2006 年;见 http://history.siam.org/oralhistories/stewart.htm。
[iii] J. J. Dongarra and E. Grosse, "Distribution of Mathematical Software by Electronic Mail," Communications of the ACM, vol. 30, no.5, 1987, pp. 403-407. https://dl.acm.org/doi/10.1145/22899.22904
[iv] R. C. Whaley, A. Petitet and J. J. Dongarra, "Automated Empirical Optimization of Software and the Atlas Project," Parallel Computing, vol. 27, no. |
|