偶然当程序员却拿下图灵奖,超算榜单之父讲述人生开挂经历

d2c6fb58d46c17cdbc8de344ddcbcab5.jpeg

文|衡宇 发自 凹非寺
源|量子位

40年前偶然走上程序员道路的Jack Dongarra,是今年的图灵奖得主。

奖项设立机构美国计算机协会(ACM)表示,Dongarra的算法与软件成果推动了高性能计算(HPC)的发展。

正是他在数值算法和库上的开创性贡献,使得过去40年里,高性能计算软件追上了指数级硬件发展的节奏。

398b221a6fd87aa398bdbdbaf3bf02db.png

这位老爷子,还弄出了个TOP500的超算排行榜,每年两次帮超算跑跑分啥的。

刚刚,今年71岁的老爷子还参加了中国计算机学会举办的CNCC 2022,做了次特邀报告演讲。

演讲的主题,也与高性能计算息息相关。

为什么人类需要超算?

高性能计算 ,是指通过聚合计算能力来提供比传统计算机和服务器更强大的计算性能。

再通俗点来讲,就是用超级计算机来并行处理复杂问题。

为什么要用上超算?Jack Dongarra举了个例子。

他提到,科学和工程都通过理论和实验来推进,但两者常常遭遇限制,尤其是实验部分。

会遭遇的“拦路虎”非常多,有可能是制造仪器很难搞,有可能是所观察的事物发展太过迅猛,又或者是没有办法在实验室里完成实验。

比如,假设有两个星系会发生碰撞,这个过程会是什么?

13a648ba25228793096d2d35331599a6.png

与其只靠漫长的观测,不如在计算机上进行仿真模拟。

计算科学增强着当下的种种理论和实验,最快的超级计算机能为仿真模拟提供非常好的保真度和准确性,更重要的是,超算能够覆盖和支持仿真模拟过程中巨大的计算量。

这就不得不提到超算的结构。

超算由一堆CPU、GPU等异构芯片提供算力。

此外,它拥有一个高度并行的系统和分布式内存。为超算编程时,会用到MPI(用于编写并行计算机的跨语言通讯协议),以及用于共享内存并行系统的多线程程序设计方案OpenMP。

美国橡树岭国家实验室的超级计算机Frontier取得了斐然的成绩:在2022年第59届国际超算Top500名单中位居榜首。

Frontier大约有800万个核,9408个节点,它在负载下的电力是21兆瓦。

Jack Dongarra打了个顽皮的比方。

他说,在美国,如果他家用掉1兆瓦的电力,一年得给电力公司缴纳100万美元的电费。

也就是说,单是电费,Frontier一年就要花掉2100万美元呢!

9b84446bc3136dc16472847cbb85af38.png

Frontier的最高性能是每秒2x1018次浮点运算。

这是一个难以置信的计算量。如果现在全球所有人停下手里的工作,开始每秒做一次计算,昼夜不停、不眠不休地计算四年,才能达到1018次浮点运算。然而,这样庞大的运算量,超算一秒就能完成。

除了计算,超算还涉及异构数据在不同芯片间的搬运,Jack Dongarra称之为移动数据(data moving)

Jack Dongarra指出,现在的超算对已经对浮点运算做了大量优化,移动数据的成本已经比计算成本还高。

降低移动数据的成本,将成为未来重点的研究方向。

此外,AI for Science已经在很多科学领域发挥重要作用,譬如DeepMind旗下的Alpha系列,如Alpha Zero、AlphaStar、AlphaTensor……

96931944b81f4feeeca881fabe82118c.png

今年推出的Alphafold2,其蛋白质结构数据库揭开了蛋白质宇宙,有人因此戏称“结构生物学家要失业了”。

超算的另一个发展方向,就是更适合做AI计算。

AI有很多方面,有ML、NLP、专家系统、CV、语音、机器人等。

Jack Dongarra给出了超算适合做AI计算的理由。

首先,互联网上存在的大量数据,可以用来训练和建立ML算法,与此同时,因为提升洞察力,ML已经成为了解决问题时所要考虑的“基础设施”之一。

而关于用来做ML计算内核的GPU,人类也对其背后的算法和理论有了更深度的了解。

ML的核心是矩阵,线性代数在其中扮演着重要的角色。

“8位浮点(FP8)精度很适用于训练神经网络的硬件。”

Jack Dongarra对此进行了进一步解释:

相比于16位、32位的浮点精度,较低的精度正是ML所需要的。

这就是为什么现在更多的计算机被设计用来专门解决ML的问题。

他还提到,未来的超算或许会拥有更多的加速器,它们可以用来进行ML、神经神态计算、量子计算、光学计算等。

“从标量到向量,从向量到分布式内存,从分布式内存到加速计算,再到使用混合精度来进行计算。”Jack Dongarra总结道,“我得出结论,这里有三场计算机革命。”

684b2377bd948776d9a18a8bf3051a75.png

意外走上漫漫超算路

拿下图灵奖的Jack Dongarra并非一开始就以当程序员为己任,一切都是“意外”。

高中毕业后,他选择进入芝加哥州立大学就读——这所学校类似于地方性的师范学校,为芝加哥公立学校系统培养了不少教师。

大三、大四时,Jack Dongarra福至心灵地“醒悟”,发现自己并不想教书。

几经周折,他申请了阿贡国家实验室的本科生职位。在那里,他有机会和真正的科学家一起做一些实际工作,并获取课程学分。

于是,就读于芝加哥州立大学的最后一个学期,Jack Dongarra在阿贡国家实验室度过了16周左右的时间。

5372004346cf4a291cdad09f288c339c.png
▲1980年Dongarra在阿贡国家实验室

在阿贡国家实验室的这段经历,促使他决心转攻计算机。

本科毕业之后,先在在伊利诺伊理工学院拿到CS硕士学位,又进入新墨西哥大学继续深造。

这里有一张1979年拍摄的照片,左数第二个年轻小伙就是Jack Dongarra本人。

那个时候,作为新墨西哥大学研究生的他,头发还很茂盛(他自己说的)。

81d28cdf96312b9c94e615b38ca5f83b.png

图上四人搞了个小组,开发了一个叫LINPACK的项目,为此,Jack Dongarra还给自己心爱的车车挂上了同名车牌。

具体来说,LINPACK是一套求解线性方程组的数学软件。

没错,那个时候小帅哥本人真正醉心的还是线性代数领域。

他曾这样描述自己40年来成为程序员的动力:

我主攻的是数学方面的研究,尤其是数值线性代数方面,我所有的工作都源于此。

对那些需要解线性方程组的学科来说,一款能计算答案的软件无疑是非常重要的。

同时,你还必须确保软件运行与机器架构相一致,这样才能真正获得机器所能达到的高性能。

1993年,Jack Dongarra加入了TOP500排行榜团队,成为了TOP500第一个测试版本的爸爸之一。

同年6月,正式版本开始发布,其所所使用的评选标准被称为LINPACK。

自那时起,TOP500排行榜半年发布一次,告诉大家世界最强大的计算设备都在哪里。

2e31f3c5254754390acda75af6582150.png

这一举措解决了科学家们无法就衡量超级计算机进展的标准达成一致的问题。

负责监督美国能源部“百百亿次计算”项目的Paul Messina就表示:

“如果你不能测量它,你就不知道它是什么”,这就是为什么杰克的工作很重要。

现在,TOP500已经成为衡量超算能力的权威标准。

而排名第一的计算速度,也以摩尔定律描述的节奏稳步增长,大约每14个月就会翻倍。

天河一号,是中国第一台登上榜首 (2010年11月) 的超级计算机,它在榜首呆了六个月时间。

上月中旬,美国达拉斯举行的 SC22 会议上,第60期TOP500排行榜结果公布,排名第一的依旧是上次夺魁的Frontier。

fe9f15abed10e5187f76e0adb150b8c0.png

中国的两台超算,神威太湖之光和天河2号,分别拿下了排行榜第7和第10位。

统计所有上榜TOP500的超算,中国共占据162台,虽较去年的173台有所下降,但仍以领先美国36台的优势,稳居世界第一的宝座。

在算力方面,美国在已部署的算力中以43.2%排名第一,中国以10.6%位列第四。

Jack Dongarra拿出了一组十分直观的数据。

现在的计算机,最快每秒是1.1 exaflops,TOP500的最后一名则是1.73 petaflops。

而Jack Dongarra的笔电是拥有M2处理器的MacBook,它的运行速度是426 gigaflops。

近30年前,第一代TOP500的榜首,属于洛斯阿拉莫斯国家实验室(LANL)用来设计核武器的计算机CM.5,它拥有一千个处理器,运行速度大约是60 gigaflops。

不用说当年的第一和今日的第一如何如何,今天家用笔电的运行速度,已经远远超过了30年前的世界最快。

好了,最后还是说回老爷子。

fccf0af669f5bce0de7c322590ade86c.png

年逾七十的他,至今依然活跃在高性能计算领域的一线,今年更是夺得“计算机界的诺贝尔奖”图灵奖,其中,LINPACK,正是他拿图灵奖的获奖工作之一。

ACM总裁Gabriele Kotsis表示,Jack Dongarra是高性能计算社区中,最重要且积极参与的领导者之一。

超算的新benchmark

也是这位积极的领导者提出,超算需要新的基准测试了!

背后原因不难理解——

LINPACK基准测试强调浮点运算,它的核心是矩阵乘法。

多年以前,团队设计LINPACK时,浮点运算还是一个很重要的衡量标准。

今时今日,浮点计算已经不那么重要了。

放眼望去,所有的超算都为浮点计算做了“过量”的准备——Jack Dongarra本人是如此评判的。

是以,他认为当务之急是需要有新的基准来关心移动数据,也就是HPCG。

eeb13ba2f0db0a63475c1f19a962d29c.png

简单介绍,HPCG一个共轭梯度算法,它着眼于解决稀疏矩阵问题,而不是密集矩阵。

这恰恰满足了今时今日在实际应用中存在的问题。

相比于旧的基准HPL,HPCG能更好地反映应用程序的效果,但它给出的执行速度的数字会低很多。

究其背后的原因,是随着GPU的增强,计算机已经可以非常迅速地进行浮点运算,所以HPL得出的数据,其实是超算潜力被夸大后的结果。

相对应地,HPCG强调不是浮点数而是移动数据,这正是带宽和延迟会限制超算性能的地方。

就拿日本超算富岳(Fugaku)来说吧。

LINPACK基准测试中,富岳排名第一,达到了理论峰值的3%;而运行新基准,富岳只得到了理论峰值的0.8%。

这意味着计算机并没有发挥出它们的潜在性能,需要更仔细地进行研究。

073ac7378e1531e2c6da77b2a196803d.png

有趣的一点是,TOP500超算榜上,几乎97%都在使用x86这种架构,只有5台超算使用ARM处理器。

以及,这500台超算没有任何一个使用了RISC-V。

“虽然今天它给高性能计算带来的影响很小,但也许在未来,我们可以看到RISC-V对它的影响。”Jack Dongarra说。

One More Thing

有些俗套的,在CNCC进行特邀报告演讲后,Jack Dongarra被问及“有没有经验可以介绍给年轻人”。

他的回答大约可以总结为以下三点:

追随激情,做你感兴趣的事情。

把目标定得高一点,同时做好失败的准备。

多和别人互动,或许会获取灵感也说不定吼~

a956bb79c6f4150dc27cf35f6a4295cf.jpeg后台回复关键词【入群

加入卖萌屋NLP、CV、搜推广与求职讨论群

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/476533.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

程序员面试金典 - 面试题 16.18. 模式匹配(逻辑题)

1. 题目 你有两个字符串,即pattern和value。 pattern字符串由字母"a"和"b"组成,用于描述字符串中的模式。 例如,字符串"catcatgocatgo"匹配模式"aabab"(其中"cat"是"a&q…

拼团小程序源码_拼团软件微信拼团小程序拼团卖水果、让您快速引流

微信作为国内最大的社交平台,已经拥有11亿的用户,成为社交电商最主要的流量平台。从电商商家到线下门店,从品牌商到个体户,大家都想瓜分微信平台的流量。同时,微信也在不断完善小程序在各业务场景中的接口,…

vs2008 USB转COM口发送字符中途出错的问题.

在VS2008中,使用USB转串口发送字符,当拔下设备再插上,串口在使用的途中会抛出错误,用Try..Catch都无法捕获. 在 System.UnauthorizedAccessException 中第一次偶然出现的“System.dll”类型的异常 “Gosun.SMC.SMS.WindowService.exe”(托管): 已加载“C:"Windows"as…

python安装requests库超时_【Python 库】requests 详解超时和重试

网络请求不可避免会遇上请求超时的情况,在 requests 中,如果不设置你的程序可能会永远失去响应。超时又可分为连接超时和读取超时。连接超时连接超时指的是在你的客户端实现到远端机器端口的连接时(对应的是connect()),Request 等待的秒数。i…

IT信息业、金融业从业人员悲歌

在台湾,不论是金融从业人员、IT 软件业、硬件业、电子代工业,工程师、技术人员的工作压力都颇大。要终其一生不断学习、为公司卖命。不同的是,在台湾的电子、光电、晶圆大厂,若你身为电子、电机、硬件、Firmware、Driver 撰码工程…

程序员面试金典 - 面试题 17.26. 稀疏相似度(哈希map)

1. 题目 两个(具有不同单词的)文档的交集(intersection)中元素的个数除以并集(union)中元素的个数,就是这两个文档的相似度。 例如,{1, 5, 3} 和 {1, 7, 2, 3} 的相似度是 0.4,其中,交集的元素有 2 个,并集的元素有 …

i2c通信的详细讲解_【博文连载】SCCB(I2C)初始化时序介绍

在正式开始OV7725视频采集实现之前,Bingo不得不先讲解一下OV7725的寄存器配置接口。OV7725上电会默认输出YUV422格式的视频流,但我们希望传感器能够按照我们预期的模式工作,我们需要配置分辨率,配置内部时钟,配置亮度、…

何可欣(为奥运冠军名字作诗)

何可欣(为奥运冠军名字作诗)——代腾飞 2008年8月18日 于成都何妹归来喜外望可儿杠上敢称王欣然前往杠上翻摘得皇冠美名扬转载于:https://www.cnblogs.com/daitengfei/archive/2008/08/25/1276011.html

LeetCode 647. 回文子串(DP/中心扩展)

文章目录1. 题目2. 解题2.1 动态规划2.2 中心扩展法1. 题目 给定一个字符串,你的任务是计算这个字符串中有多少个回文子串。 具有不同开始位置或结束位置的子串,即使是由相同的字符组成,也会被计为是不同的子串。 示例 1: 输入: "abc…

当我问了ChatGPT 10个程序员最关心的问题,没想到…

源|AfterShip近期 OpenAI 火爆了科技圈。作为一家极客氛围浓厚,60% 都是产研的科技公司,AfterShip 的很多同学也都留意到了这个工具。因此,我们面向工程师征集共创,并筛选出了程序员最关心的十个问题。并将这些问题询问…

ipv6 访问内网_【内网渗透】—— 隐藏通信隧道技术之网络层隧道技术

hidden:是否完全隐藏控制面板,还有很多设置参数,比如也可以设置显示面板,然后设置宽高WIDTH“整数” 和 HIGH“整数”。1. 隐藏通信隧道基础1.1隐藏通信隧道技术概述常用的隧道:网络层:IPv6隧道&#xff0c…

心潮澎湃之胡言乱语

做了很长时间的思想斗争之后决定还是写下这篇文章,从毕业到现在两个月了,明天我将离开了工作两个月的公司,上帝再一次次的考验我然后又再一次次的给我机会,挫折的背后感触更多是我是上帝的宠儿,所以越到挫折时自我陶醉…

LeetCode 1277. 统计全为 1 的正方形子矩阵(DP)

1. 题目 给你一个 m * n 的矩阵,矩阵中的元素不是 0 就是 1,请你统计并返回其中完全由 1 组成的 正方形 子矩阵的个数。 示例 1: 输入:matrix [[0,1,1,1],[1,1,1,1],[0,1,1,1] ] 输出:15 解释: 边长为 …

抱抱脸:ChatGPT背后的算法——RLHF | 附12篇RLHF必刷论文

文 | 卖萌酱大家好,我是卖萌酱。前几天,抱抱脸公司(HuggingFace)发表了一篇博客[1],详细讲解了ChatGPT背后的技术原理——RLHF。笔者读过之后,觉得讲解的还是蛮清晰的,因此提炼了一下核心脉络&a…

该文件夹包含名称过长且无法放入回收站的项目_微软复活20年前生产力工具PowerToys,填补Win10缺失功能,开源且免费...

贾浩楠 发自 凹非寺量子位 报道 | 公众号 QbitAI微软PowerToys?如果你是 Win95、XP时代的老用户,可能对这个微软个官方工具集很熟悉。它包含了很多实用的系统功能增强小软件,如TweakUI、虚拟桌面工具等等,但微软在XP之后就不再更新…

SQL Server中常用全局变量介绍

在SQL Server中,全局变量是一种特殊类型的变量,服务器将维护这些变量的值。全局变量以前缀开头,不必进行声明,它们属于系统定义的函数。下表就是SQL Server中一些常用的全局变量。    全局变量名称 描述 CONNECTIONS 返回 SQL Server 自上次启动以来尝试的连接…

ChatGPT终于被缝进了搜索引擎…

文|Alex Pine 发自 凹非寺源|量子位见惯了列表式搜索引擎,你有没有想过给它换种画风?有人脑洞大开,把艳惊四座的ChatGPT和必应搜索结合起来,搞出了一个智能搜索引擎:既有ChatGPT式的问答&#x…

LeetCode 1310. 子数组异或查询(前缀异或)

1. 题目 有一个正整数数组 arr,现给你一个对应的查询数组 queries,其中 queries[i] [Li, Ri]。 对于每个查询 i,请你计算从 Li 到 Ri 的 XOR 值(即 arr[Li] xor arr[Li1] xor … xor arr[Ri])作为本次查询的结果。 …

python编程书籍1020python编程书籍_从零单排之玩转Python安全编程(II)

转自:http://www.secpulse.com/archives/35893.html都说Python大法好,作为一名合格的安全从业人员,不会几门脚本语言都不好意思说自己是从事安全行业的。而Python是最容易入门且使用最顺手的脚本语言,为了不引起程序员世界大战&am…

[导入][转]sap学习手册二

SAP学习手册二 作者:sunxufeng 有没有调整IDES4.6的中文包参数的步骤呢? 在导入中文包后直接手工修改有关参数,不要用CZ10去修改假定为D盘,路径为D:usrsapC11sysprofileC11_DVEBMGS00_cpa (后面CPA为我的计算机名),用NOTEPAD手动编辑该文件 SAPSYSTEMNAME C11 INS…