2023数博会现场丨图灵奖得主杰克·唐加拉:中国是最大的超级计算机生产国之一

2023-05-26 13:10

5月26日上午,2023中国国际大数据产业博览会在贵阳开幕。本届数博会以“数实相融 算启未来”为年度主题,围绕一会、一展、一发布、一大赛,以及商贸投资洽谈开展相关活动。

在2023数博会开幕式上,2021年图灵奖获得者、美国田纳西大学教授杰克·唐加拉以《高性能计算与大数据》为主题做了线上演讲。他表示,中国不仅拥有最多的超级计算机,而且也是最大的超级计算机生产国之一。

大家好,我是杰克·唐加拉,是田纳西大学的一名教授,在2021年获得了ACM图灵奖。今天,我想聊一聊高性能计算与大数据。但首先我想说,很荣幸能参加在中国贵阳举办的数博会,遗憾的是我不能亲临现场。

我们来看一下科学。如今,科学的发展是由模拟驱动的,过去我们将科学看作理论与实验的结合,理论是纸笔,是将想法写下来,实验是通过在物理上构建某些东西来验证这些理论,而实验则会进一步强化理论。但有时可能难以构建物理实验,有时是难度太高,有时是费用太高,有时是速度太慢。例如,模拟星系相撞的实验,这种实验无法在实验室进行,必须通过模拟来进行。因此,我们使用计算机帮助实现模拟,通过计算科学来实现这种模拟,计算科学是一种范式,它增强理论和实验,以此推动科学发现,为了进行最佳的计算科学研究,我们需要高性能计算机或超级计算机。

接下来我们聊一聊超级计算机。一台典型超级计算机的构建是从芯片开始的,芯片有多个内核,我们将这些内核称为芯片上的处理器。我们将这块芯片装载于基板上,基板上装载了多块芯片,这就组成了超级计算机中的一个节点,将这块基板与能够提升性能的加速器相结合,这些加速器被称为图形处理器(GPU)。我们将计算机芯片和GPU组合在一起,装载于基板上,这就组成了超级计算机中的一个配置板。

我们在一个机架中安装多个这样的配置板,这样这个机架中就有多个节点在一个机柜里。然后我们重复制造一批这样的机柜,我们的超级计算机包含许多这样的机柜。因此,就超级计算机的占地面积而言,可以将其想象成两个网球场大小,这两个网球场大小的占地面积是由这些芯片、加速器以及相互连接的网络构成的,这就是我们的起点。

当前,高性能计算机或超级计算机的使用环境是通过高度并行的处理器集合来实现的,并采用了分布式内存,每个节点都有自己的内存,即该节点的本地内存。我们使用一种叫做MPI或OpenMP的编程方式来实现通信。举个例子,现有记录中最快的超级计算机位于橡树岭国家实验室,它每秒可进行200亿亿次浮点运算,也就是10的18次方次浮点运算的两倍,它有大约880万个内核,所以这是一个庞大的系统,处理器由超微半导体公司(AMD)制造,这台机器至今还在运行中。

另一个需要认识到的事情是这些计算机非常异构,它们包含通用处理器和加速器,从而使这台机器得以运行,在这台机器上最消耗时间的一件事情就是通信,即把数据从机器的某个部位移动到机器的另一个部位,这也是影响性能的一个瓶颈。原本这些机器的浮点运行执行速度非常快,但数据通信通常会减慢运行执行速度,这些机器有不同的浮点运算方式,传统的科学计算方法是使用64位浮点运算,即我们进行加或乘的运算对象有64位,也使用32位浮点运算,但是现在图形处理单元中进行的是16位浮点运算,甚至在某些情况下是8位的浮点运算,这些16位或8位的浮点运算主要是在计算机运行人工智能或机器学习应用程序时起到辅助作用。因此,这是我们可以期望这些计算机达到的性能或精度水平。

目前,最快的计算机被称为百亿亿次级计算机或百亿亿次级机器,什么是百亿亿次浮点运算呢?百亿亿次浮点运算表示每秒执行10的18次方次浮点运算,一次浮点运算是一次64位操作数的加法或乘法运算,这是我们传统的科学计算方式,一百亿亿次浮点运算表示每秒执行一百亿亿次浮点运算,这个数字不是20亿,而是每秒进行一亿亿次浮点运算。因此,这些机器拥有令人难以置信的计算能力。想象一下地球上的人口数量,如果我们每秒进行一次运算,每个人每秒进行一次运算,需要四年才能达到这个计算设备的运算能力。全球人口每秒钟完成一次运算的情况下,需要四年的时间才能达到一百亿亿次浮点运算,而这正是这台计算机每秒钟可以完成的计算量,所以说这些机器具有非常强大的计算能力。

这是一份我们称之为500强的榜单,榜单上列出了全球最快的500台计算机。自1993年以来,我们一直在发布这个榜单,通过这个图表我们可以感受到从1993年至今高性能计算的发展变化。图中我们看到了一组红色的点,这些红色的点代表每个时代最快的计算机,现在,最快的计算机在基准测试中达到了每秒1.1百亿亿次浮点运算,这就是最快计算机的执行速度。而榜单底部的计算机则用橙色点代表,排名第500的最慢计算机的运行速度为每秒1.73千万亿次浮点运算,这就是超级计算机的极限范围,其中有三个数量级。如果把这500台计算机加起来,它们的总性能为每秒4.8百亿亿次浮点运算,这就是这500台计算机加起来的总性能水平。

我们可以看到,随着时间的推移发生了什么,如果我们回头看1993年,即这个榜单中最早年份的超级计算机,那是美国公司Thinking Machines研制的超级计算机CM-5,但是这样台计算机有1000个处理器,它位于新墨西哥州,隶属于美国能源部实验室的洛斯阿拉莫斯国家实验室,该台计算机用于核武器设计和模拟,这就是当时最强大的计算机。现在我使用笔记本电脑,我可以在我的笔记本电脑上运行这个基准测试,当我这样做时,可以实现每秒4260亿次浮点运算,即十亿次运算的426倍,所以我的笔记本电脑实际比1993年在洛斯阿拉摩斯国家实验室用于核武器模拟的那台计算机更快,事实上大约是那台计算机运行速度的7倍,实际上我主要使用我的笔记本电脑阅读电子邮件,所以在很短的时间内发生的令人难以置信的变化。

这是一个关于世界十大超级计算机的榜单,该榜单每年发布两次,分别在11月和6月发布,最近的一份榜单是在2022年11月发布的。该榜单列出了全球最快的10台计算机,请想象一下全球速度最快的10台计算机,排名第一的超级计算机由美国能源部管理,在橡树岭国家实验室运行,名为Frontier,由慧与科技公司集成,他们不制造处理器,而是将处理器组合在一起,放进一个盒子里,这台计算机使用AMD处理器,还有AMD加速器和GPU图形处理器,这台计算机的总内核数约为770万个,它的性能水平达到了每秒1.1百亿亿次浮点运算,相当于理论峰值性能的65%,它们无法达到理论峰值性能,它们达到了理论峰值性能的65%,距离理论峰值性能还有35%的空间。这台计算机在负载运行时及消耗21兆瓦的电力。

关于兆瓦的概念可以这样理解,如果我在田纳西州的家里每年使用1兆瓦的电力,一年的电费将为100万美元。因此,每年一兆瓦的电费相当于100万美元。换言之,这台计算机每年的电力费用约为2000万美元,这只是它的电力费用,不包括计算机本身的成本。

最后一列表示算效,那么,每瓦特能够实现多少亿次浮点运算呢?排名第一的计算机算效为每瓦特进行52亿次浮点运算,你可以往下看这张榜单,看看其他排名前十的计算机,榜单上的大部分计算机都使用加速器或GPU图形处理器来提高性能,唯一的例外是一台日本的计算机,这台名为富岳的计算机采用了带有矢量扩展的ARM处理器,使其能够实现非常高的执行速度。

我们来数一数,排名前10的计算机中有5台是在美国,1台在日本,1台在芬兰,1台在意大利,还有2台在中国,有一台叫做神威·太湖之光的超级计算机,这台计算机位于靠近上海的无锡市,其处理器由中国设计,具有强大的性能,它不是一个通用的处理器,而是专门为科学计算而设计的。排名第十的计算机名为天河二号,它目前正在运行,它是由中国国防科技大学设计的,使用的英特尔处理器和中国国防科技大学设计的加速器,后续架构将不再使用英特尔或西方国家生产的处理器,而是使用中国本土的处理器。

随着我们的讨论深入,我们会谈论更多关于这个话题的内容。让我们来看看计算机数量,榜单上列出了最强大的500台计算机,如果按国家来分类,我们会发现榜单上中国的超级计算机数量最多,中国有173台超级计算机上榜,我觉得这很惊人,因为在2001年时,榜单上没有中国的超级计算机。因此,中国在高性能计算方面投入了雄厚的资本。美国有128台超级计算机上榜,榜单上还有日本、德国、法国等其他国家。

中国不仅拥有最多的超级计算机,而且也是最大的超级计算机生产国之一,中国有许多公司生产超级计算机,据传中国有两台百亿亿次超级计算机正在运行中,在山东省有一台名为神威Pro海洋之光的计算机,该计算机有超过每秒一百亿亿次浮点运算的能力,另一台计算机是位于天津的天河三号,该计算机采用的ARM处理器和矩阵加速器均由中国研制,这些处理器正在这些计算机上运行。

这是一份按时间序列展示的最强超级计算机榜单,我们可以看到趋势如何随时间变化。如今,排名第一的超级计算机算力为每秒1.1百亿亿次浮点运算。回顾1997年,当时达到每秒万亿次运算或每秒10的12次方次运算的计算机,是位于新墨西哥州隶属于美国能源部实验室的桑迪亚国家实验室的一台超级计算机,11年后出现了一台运行速度快三个数量级的超级计算机,每秒进行1千万亿次浮点运算,这台超级计算机名为走鹃,位于洛斯阿拉莫斯国家实验室。14年之后出现了运行速度快三个数量级的百亿亿次超级计算机,要达到如此高的执行速度所花费的时间在变长,主要原因是摩尔定律和登纳德缩放定律等因素影响着执行速度或芯片的发展速度。如今,排名第一的是frontier超级计算机,而在过去,排名第一的是日本的富岳超级计算机,在富岳之前是位于橡树岭国家实验室的顶点超级计算机,在顶点之前是中国生产的神威超级计算机,在神威之前是天河二号超级计算机。因此我们可以看到一个十年的窗口期,在此期间,中日美三国生产的超级计算机轮流登顶成为最快的超级计算机。

如果我们看一下科学计算中的高性能计算,我们会发现有这样一个情况,我们有一小部分数据输入进行数值密集的计算,然后有大量的数据输出,其中一个例子是气候模拟,即采用一个气候模型,然后进行计算,在高性能计算机上进行模拟,输出的结果显示了气候随时间推移而产生的变化,这些计算产生大量的数据。因此,在某种意义上,输入的数据很少,输出的数据很多,这与数据密集型应用或机器学习或人工智能应用的情况非常不同,在机器学习中有大量的数据输入,但输出的数据却很少。

例如,生成型预训练变换模型Chat GPT就是一个例子,我们输入整个互联网,这是对这个设备的输入,它在某种意义上进行了模拟,输出的是键入查询的结果,可能是提问,也可能是要求Chat GPT执行某些操作。因此,左边的内容是高性能计算,它着重于使用64位精度,在科学应用中获得高精准分辨率,而机器学习和人工智能应用则使用16位浮点算法,因此其不需要很高的精度,其所需要的是大量输入数据,进行大量计算,然后输出少量数据,这是一种有趣的权衡或差异。

我们最近看到,机器学习和人工智能飞速发展,这这种现象已经存在了很长时间,如今机器学习和人工智能颇受欢迎,被广泛应用,它正在帮助我们推动科学发现,问题是为什么是现在呢?是什么推动了这种变化发生呢?其中一个因素是我们拥有了海量可用数据,整个互联网都可用于帮助训练机器学习能力,我们拥有越来越强大的计算资源、算法和理论,也不断取得进展,研究人员研发了算法理论,这使得我们得到了来自各行各业越来越多的支持,推动机器学习和整体技术的发展。

因此,在某种意义上机器学习真正推动了科学发现,机器学习应用于气候生物学、药物设计,还应用于材料学、宇宙学和高能物理学等领域,这些领域都在使用机器学习,人工智能这个领域其实有很多相关分支,包括机器学习、自然语言处理、生成型预训练变换模型或Chat GPT,还有专家系统,还有用于汽车的视觉系统,还有语音识别,还可以使用人工智能和机器人技术进行规划。因此它在很多领域都产生了影响,并且有望继续产生影响。

深度学习需要数值计算,需要小矩阵乘法运算,这些矩阵乘法运算可以使用非常短的精度来完成,因此,这种计算只是需16位的精度即可。我们看到,可用于运行或开发这些应用程序的硬件正在构建中,我们看到许多公司设计和开发了非常专业的硬件服务于机器学习和人工智能,这些公司遍布美国、中国、日本和欧洲,这些公司正在开发硬件以提供解决这些问题的方案,当我们展望高性能计算的未来,试图了解架构会是什么样子时,我们可以看到今天的计算机是建立在中央处理器和图形处理器上的,这就是超级计算机的构成,也是我们用于开发应用程序时的硬件平台。

在未来,我们可能会在这个体系结构中添加更多的组件,例如,我们可能会增加专门设计,用于机器学习的处理器,如神经形态处理器,这些处理器的计算方式类似于我们的大脑的运行方式或者是量子计算机。量子计算机不会独自存在,它将连接到其他的资源上并协助计算,从而增强或卸载,将计算任务从通用计算中卸载,通过量子计算机的帮助来非常快速地进行特定类型的计算,或者我们将拥有张量计算机或基于张量的处理器,甚至可能是光学处理器,可以基于光量进行计算,实现非常快的计算速度。

因此,本次讲话的要点实际上是硬件在某种意义上是不断变化的,我们从拥有标量处理器的时代开始,发展到矢量计算机,接着是分布式计算机,再然后是加速计算机,现在我们拥有的计算机不仅仅是这些组合,而且还使用混合精度计算,我们可以看到在这个领域中正在发生着三场革命,高性能计算已经改变了,通过模拟来进行科学研究的方式,深度学习帮助我们,通过推理能力来理解如何做事情,我们还可以看到边缘计算到中央处理器的转变,然后可以提供资源,可能是我们拥有的超大规模机器或是公司的资源,因此,算法和软件通常会随着硬件的进步而变化,这个模式可以总结为,某人构建了一种具有特定功能的软件,然后算法人员和设计软件的人必须跟随这些硬件变化的步伐,由此导致的结果可能并不是很高效。

因此,在某种程度上,这些机器还有很大的上升空间,几年前,查尔斯·雷瑟尔森和他的同事在《科学》杂志上发表了一篇有趣的论文,论文标题是《我们仍有向上的空间:在摩尔定律之后什么将推动计算机性能的发展》,这相当于演绎或呼应理查德·费曼1959年在加州理工学院发表的题为“底下还有大可为”的经典演讲,在那次演讲中,他主要讲述了关于量子计算机的想法以及其如何帮助我们更好地理解和处理事物。

我的讲话到此结束了,很高兴今天能够与大家在这里共聚一堂,尽管时间很短,祝会议圆满成功,这就是我要讲的全部内容,再见。

戳这里,有更多关于数博会和前沿科技的消息↓