一不小心成为程序员却获得图灵奖,超级计算机榜单之父讲述黑客的人生经历。40年前一不小心走上程序员之路的JackDongarra,就是今年的图灵奖得主。奖项设置机构美国计算机协会(ACM)表示,唐加拉的算法和软件成果推动了高性能计算(HPC)的发展。正是他对数值算法和库的开创性贡献,使高性能计算软件在过去40年里赶上了硬件呈指数级发展的步伐。这位老哥还创造了TOP500超算排行榜,每年两次帮助超算上分。刚刚,这位71岁的老人还参加了中国计算机学会举办的CNCC2022,并做了专题报告演讲。演讲的主题也与高性能计算息息相关。为什么人类需要超级计算?高性能计算是指通过聚合计算能力,提供比传统计算机和服务器更强大的计算性能。简单点说,就是用超级计算机并行处理复杂的问题。为什么要使用超级计算?杰克·唐加拉(JackDongarra)举了一个例子。他提到,科学和工程都是通过理论和实验来进步的,但都经常遇到局限性,尤其是实验部分。会遇到很多“拦路虎”。可能是仪器制造难度大,可能是观察到的东西发展太快,也可能是没有办法在实验室完成实验。例如,如果两个星系发生碰撞,过程会是怎样的?与其仅仅依靠冗长的观察,不如在计算机上运行模拟。计算科学增强了当前的理论和实验。最快的超级计算机可以为模拟提供非常好的保真度和准确性。更重要的是,超级计算机可以覆盖和支持模拟过程中的大量计算。.这就不得不提到超算结构了。超级计算由一堆异构芯片提供支持,例如CPU和GPU。此外,它具有高度并行的系统和分布式内存。在为超级计算编程时,会使用MPI(一种用于编写并行计算机的跨语言通信协议)和OpenMP(一种用于共享内存并行系统的多线程编程解决方案)。美国橡树岭国家实验室的超级计算机Frontier取得了骄人的成绩:在2022年第59届国际超级计算Top500榜单中名列第一。Frontier拥有约800万个核心,9408个节点,负载下消耗功率21兆瓦.杰克·唐加拉(JackDongarra)做了一个调皮的比喻。他说,在美国,如果他的家庭用电量为1兆瓦,他每年要向电力公司支付100万美元的电费。换句话说,光是电费一项,Frontier每年就要花费2100万美元!Frontier的峰值性能是每秒2x1018次浮点运算。这是一个令人难以置信的计算量。如果全世界的人现在都停止工作,开始每秒计算,昼夜不停地计算,四年不睡觉,他们可以达到1018个浮点计算。然而,如此庞大的计算量,超级计算却可以在一秒内完成。除了计算,超级计算还涉及不同芯片之间异构数据的传输。JackDongarra称之为数据移动。成本已经高于计算成本。降低移动数据成本将成为未来的重点研究方向。此外,AIforScience已经在很多科学领域发挥了重要作用,比如DeepMind旗下的Alpha系列,比如AlphaZero、AlphaStar、AlphaTensor……今年推出的Alphafold2,其蛋白质结构数据库已经揭示了蛋白质宇宙,所以有人戏称它为“结构生物学家要失业了”。超级计算的另一个发展方向是更适合AI计算。AI有很多方面,比如ML、NLP、专家系统、CV、语音、机器人等等,JackDongarra给出了超级计算适合AI计算的原因。首先,互联网上的大量数据可以用来训练和构建ML算法。同时,ML因为洞察力的提升,成为解决问题时要考虑的“基础设施”之一。而对于作为ML计算核心的GPU,人类也对其背后的算法和理论有了更深入的理解。ML的核心是矩阵,线性代数在其中起着重要作用。“8位浮点(FP8)精度非常适合训练神经网络硬件。”JackDongarra对此进一步解释道:与16位和32位浮点精度相比,更低的精度正是ML所需要的。这就是为什么现在有更多的计算机专门设计用于解决ML问题。他还提到,未来的超级计算可能会有更多的加速器,可以用于机器学习、神经计算、量子计算、光计算等。“从标量到向量,从向量到分布式内存,从分布式内存到加速计算,再到使用混合精度进行计算。”杰克·唐加拉(JackDongarra)总结说:“我得出结论,这里有三场计算机革命。”出乎意料的是,已经踏上超级计算漫漫征程并获得图灵奖的杰克·唐加拉,从一开始就没有以做程序员为己任。一切都是“意外”。高中毕业后,他选择了就读芝加哥州立大学——这所学校类似于地区师范学校,为芝加哥公立学校系统培养了很多教师。大三和大四的时候,杰克·唐加拉幸运地“醒了”,不想教书了。几经周折,他申请了阿贡国家实验室的本科职位。在那里,他有机会与真正的科学家一起动手并获得课程学分。因此,在芝加哥州立大学的最后一个学期,JackDongarra在阿贡国家实验室度过了大约16周。△Dongarra1980年在ArgonneNationalLaboratory的ArgonneNationalLaboratory的经历促使他决定改用计算机。本科毕业后,先在伊利诺伊理工大学获得CS硕士学位,后进入新墨西哥大学继续深造。这是一张摄于1979年的照片,左起第二个年轻人是杰克·唐加拉本人。那时,作为新墨西哥大学的研究生,他的头发还很多(据他自己说)。图中的四个人组成了一个小组,开发了一个名为LINPACK的项目。为此,杰克·唐加拉(JackDongarra)甚至将同一个名字印在了他心爱的汽车上。具体来说,LINPACK是一套求解线性方程组的数学软件。没错,那个时候,帅哥本人也着实对线性代数领域着了迷。他曾这样描述自己40年来成为程序员的动力:我主要专注于数学方面的研究,尤其是数值线性代数,我所有的工作都源于此。对于那些需要求解线性方程组的学科来说,一款能够计算出答案的软件无疑是非常重要的。同时,还必须保证软件运行与机器架构一致,才能真正获得机器所能达到的高性能。1993年,JackDongarra加入了TOP500排行榜团队,成为TOP500首个测试版之父之一。同年6月正式版开始发布,使用的选择标准称为LINPACK。此后,TOP500榜单每六个月发布一次,告诉大家世界上最强大的计算设备在哪里。此举解决了科学家无法就衡量超级计算机进展的指标达成一致的问题。美国能源部百亿亿级计算项目的负责人保罗·梅西纳说:“如果你不能测量它,你就不知道它是什么”,这就是杰克的工作很重要的原因。现在,TOP500已经成为衡量超算能力的权威标准。排名第一的计算速度也以摩尔定律描述的速度稳步增长,大约每14个月翻一番。天河一号是中国第一台名列榜首的超级计算机(2010年11月),在那里呆了六个月。上个月中旬,在美国达拉斯举行的SC22大会上,第60届TOP500排行榜的结果揭晓,排名第一的依然是上届夺冠的Frontier。神威太湖之光和天河二号这两款中国超级计算机分别位列第七和第十。算上TOP500榜单的所有超级计算机,中国共有162台。虽然较去年的173台有所下降,但仍以36台领先美国位居世界第一。在计算能力方面,美国以43.2%的部署计算能力排名第一,中国以10.6%排名第四。JackDongarra想出了一组非常直观的数据。当今最快的计算机是每秒1.1exaflops,而TOP500中的最后一位是1.73petaflops。JackDongarra的笔记本电脑是配备M2处理器的MacBook,运行速度为426gigaflops。将近30年前,第一代TOP500榜单的榜首属于洛斯阿拉莫斯国家实验室(LANL)用于设计核武器的计算机CM.5。它有1000个处理器,运行速度约为60gigaflops。过去的第一和今天的第一不用多说,如今家用笔记本电脑的运行速度已经远远超过了30年前的世界最快。好了,最后说说老头吧。他已经70多岁了,依然活跃在高性能计算领域。这一年,他获得了“计算机界的诺贝尔奖”图灵奖。其中LINPACK是他获得图灵奖的作品之一。一。ACM总裁GabrieleKotsis表示,JackDongarra是高性能计算社区最重要、最活跃的领导者之一。超算新标杆也是这位活跃的领导者提出来的,超算需要新标杆的考验!背后的原因不难理解——LINPACK基准测试强调浮点运算,其核心是矩阵乘法。多年前,当团队设计LINPACK时,浮点运算仍然是一个非常重要的措施。今天,浮点计算已经不那么重要了。环顾四周,所有的超级计算机都为浮点计算做了“过度”的准备——杰克·唐加拉自己是这样判断的。因此,他认为必须要有一个新的标杆来关注移动数据,那就是HPCG。简而言之,HPCG是一种共轭梯度算法,专注于解决稀疏矩阵问题而不是密集矩阵问题。这正好解决了当今实际应用中存在的问题。与旧的基准HPL相比,HPCG可以更好地反映应用程序的性能,但它会给出低得多的执行速度。其背后的原因是,随着GPU的增强,计算机已经可以非常快速地进行浮点运算,所以HPL得到的数据其实是超算潜力被夸大的结果。相应地,HPCG强调的不是浮点数,而是移动数据,而这正是带宽和延迟会限制超级计算性能的地方。以日本超级计算机富岳(Fugaku)为例。在LINPACK基准测试中,富越排名第一,达到了理论峰值的3%;在跑新的benchmark时,富岳只拿到了理论峰值的0.8%。这意味着计算机没有发挥其潜力,需要更仔细地研究。有趣的一点是,几乎97%的TOP500超级计算机都使用了x86架构,只有5台超级计算机使用了ARM处理器。而且,这500台超级计算机都没有使用RISC-V。“虽然它对今天的高性能计算影响不大,但也许在未来,我们可以看到RISC-V对它的影响。”杰克·唐加拉说。OneMoreThing有点陈词滥调。JackDongarra在CNCC做了专题报告演讲后,被问到有没有什么经验可以介绍给年轻人。他的回答可以概括为以下三点:追随你的热情,做你感兴趣的事。目标远大,做好失败的准备。多与人交流,说不定你会得到灵感,说不定你会怒吼~
