清华大学偏微分方程数值解法

核心提示作者 | 未来论坛编辑 | 蒋宝尚AI技术,特别是机器学习和强化学习方法,基于实验或者计算产生的数据对所求解的问题进行可计算建模,从而得到复杂问题的有效解决方式,这对当今科学计算领域的研究范式已经产生了巨大影响。与此同时,以深度学习为代表的

作者|未来论坛

编辑|蒋宝尚

人工智能技术,特别是机器学习和强化学习方法,可以根据实验或计算产生的数据,为解决的问题建立计算模型,从而获得复杂问题的有效解决方案,对当今科学计算领域的研究范式产生了巨大影响。与此同时,以深度学习为代表的AI的内在机理、数学理论、基础算法等方面还不清楚、不完善,AI方法的鲁棒性和准确性还缺乏严格的数学论证,正在对其进一步发展造成严重障碍。然而,结合机制的思维方式可能会为面向数据的AI技术提供新的见解和研究途径。

2020年5月9日,AI+科学计算主题讨论在未来论坛青年联盟YOSIA Webinar举行。共有五位嘉宾分别从AI for Scientific Computing和Scientific Computing for AI两个不同角度进行了演讲和前沿讨论。

其中,北京大学杨超教授作了题为《论超级计算、人工智能和科学计算的融合与发展》的报告。杨先生在报告中介绍,几十年来,科学计算与超级计算相互促进、共同发展的闭环已经形成。人工智能近年来的巨大成功为科学计算带来了新思想、新方法和新工具,而科学计算的严谨体系有助于提高现有人工智能技术的可解释性。

此外,杨先生还通过求解偏微分方程说明了神经网络作为科学计算工具的帮助,阐述了超级计算、科学计算、人工智能是从模型、算法、软件、硬件等多方向融合发展而来的观点。

注:本文已由杨超审阅和校对。

从主流的科学研究范式来看,认识和发现世界最重要的三种科学研究方法是实验、理论和计算。随着近十年来数据科学的兴起,基于数据的科学发现被认为是第四种重要的科学研究范式。围绕计算和数据有三个非常独立但又相互关联的方向,分别是超级计算、科学计算和人工智能。

自从计算科学诞生以来,超级计算和科学计算之间的关系就已经建立起来了。两者之间的关系可以概括为:超级计算是为了支撑科学计算的发展,科学计算作为需求驱动超级计算机的性能不断提升。

早在电子计算机诞生之前,超级计算的想法就已经萌芽了。代表作之一是英国数学家理查森在1922年提出的“预测工厂”概念。这个概念被称为“理查森之梦”。

为什么是梦?因为1922年还没有电脑,所以他提出的“预报工厂”主要是用来预报天气的。众所周知,天气预报是科学计算领域最具代表性的应用。工厂的预算包括64000台人类电脑,每台“电脑”按一人计算。预报厂里也有专人用信号灯指挥不同的“电脑”交换数据。

“预报工厂”的计算对象是大气,计算区域分为64000个部分,每个部分负责一个部分。大家分别计算,有人协调指挥。这其实反映了早期人们想象超级计算的一个简单思想。

随着世界上第一台电子计算机ENIAC的问世,理查森的梦想终于实现了。ENIAC重达数十吨,占地面积非常大,耗电量惊人。据说每次ENIAC开机,费城所有的灯都变暗。1950年,冯·诺依曼和他的助手对ENIAC的可编程性进行了改造,并以此为基础编写了世界上第一个天气预报程序,成功完成了24小时预报,实现了理查森的梦想,成为科学计算蓬勃发展的重要开端。

如今,超级计算机经过几十年的发展,已经在航空空、航天、气候、能源、材料、安全、天文等科学计算的各个领域发挥了不可替代的支撑作用。2013年,美国能源部统计了科学计算应用中的一些典型计算需求,即使在今天,这些需求仍然非常大。

在科学计算巨大需求的牵引下,超级计算机的计算性能以“十年千倍”的速度快速提升。我们都知道摩尔定律。摩尔定律是指个人计算机的性能每18到24个月翻一番,而超级计算机的性能每年翻一番,“十年翻一千倍”。

目前超级计算机发展的一个重要趋势是:异构众核,即同一系统有不同类型的计算核心,每个芯片上要集成大量的计算核心。为什么会沿着异构众核趋势发展?

其实这和计算需求关系不大,更多的是和超算发展本身的技术条件有关。现在所有的超级计算机都是基于冯诺依曼架构,冯诺依曼架构的“计算”和“存储”的分离会导致现有技术下满足计算需求的设计方案非常有限。现在这样的系统越来越多,同一个系统有很多计算核心,而计算核心又不尽相同,所以从设计算法和研究软件的角度来说都面临很大的挑战。

比如求解偏微分方程的经典并行算法——区域分解算法,一般假设每个子区域应该大致相同,并满足一些数学条件,比如子区域应该具有凸性和简单连通性。在异构系统上,这些假设很难成立,需要突破传统算法的约束。

为了解决这个问题,我们提出了一套异构区域分解算法。基于传统的区域分解思想,对每个子区域进行二次分割,分割时排除了之前的理论假设,包括凸区域、单连通区域等约束。目标是适应异构系统的现有硬件配置。

虽然理论上很难分析这种异构区域分解算法的收敛性,但在实际应用中取得了良好的应用效果。HPCG是基于求解偏微分方程的高性能计算机的排名标准。我们将该算法应用于HPCG的优化,取得了良好的效果。收敛性非常好,这帮助天河二号在2016年排名HPCG世界第一。

如前所述,科学计算和超级计算相互促进、共同发展的闭环已经形成了几十年。近十年来,随着大数据的兴起,人工智能技术得到了复兴和爆发式的发展。在这一点上,人工智能作为“新”的角色进来后,扮演的是什么角色?

至少两个功能。首先,从超算的角度来说,超算最初主要是用来支撑科学计算的。现在有了人工智能的新需求,超级计算也必须为人工智能提供强大的计算能力支持。反过来,人工智能的特性将改变超级计算的发展趋势。

第二,人工智能与科学计算的关系。人工智能有一些很好的数学工具和思维方法可以作为科学计算的新思路、新方法和新工具,而科学计算有多年发展的基础和比较完整的理论框架,可能帮助我们实现可解释的人工智能。

AlphaGo和AlphaGo Zero作为近年来非常著名的人工智能突破,曾经战胜过人类围棋冠军。对于AlphaGo Zero这样的大型AI应用,如果要在一天内完成它的训练,需要比1E ops更强的计算能力。事实上,在过去的6年里,训练神经网络的计算能力需求增长了30万倍,这远远超出了超级计算机“万倍”的计算性能提升速度。所以现在有一种观点认为,计算能力是人工智能发展非常重要的基础,甚至有人认为计算能力永远是赢家。

同时,人工智能的发展深刻改变了超级计算的发展趋势,尤其是在2017年前后。随着大规模AI应用的出现,新型超级计算机的设计也逐渐开始考虑人工智能这类应用。最具代表性的机器是美国的Summit,计算性能全球第一。这台机器科学计算的双精度浮点运算性能是148Pflops/s,但配备专门的张量核计算单元也能达到3.4。

与此同时,谷歌、IBM、寒武纪、华为等世界大公司也率先研发出了各种AI处理器。最近,Google Jeff Dean等人开发了一种用AI设计芯片的新技术,大大提高了芯片数据的效率。毫不夸张地说,AI对硬件设计的方方面面都产生了深远的影响。

在超算系统设计方面,比如牛津大学在2018年发布了《解码中国的AI梦》白皮书,其中有一个观点:“中国建造超算的成功表明,在AI硬件方面赶超世界领先企业是可能的……如果其他国家专门为AI开发新的超算,中国在制造传统超算方面的出色表现可能无关紧要”。让我们沿着这条线思考。也许有一天,也许很快,我们会看到一台专门用于AI计算的大型超级计算机。

现在让我们回到解偏微分方程。借助神经网络等数学工具,能否解决一些以前难以解决的问题?

在这里,我列举了三个各具特色的方程,它们都具有很强的非线性,计算域是不规则高维的。比如第一个方程的计算区域虽然是二维的,但是区域的边界非常复杂。它是中间三维的一个例子,其计算区域由一个扭曲的圆环面构成,用经典方法很难精确描述。第三个是100维的超立方体,它的高维性使得经典方法很难求解。

神经网络可以很好地解决这类问题。我们提出了一种新的方法——PFNN。该方法最大的特点是只需要求解无约束优化问题,不引入任何惩罚。

传统的神经网络求解方法或多或少会引入惩罚项,但通过某种手段重构解空是可以避免的。将约束优化问题转化为无约束优化问题。数值结果表明,PFNN方法可以提高问题的求解精度和计算效率。

让我们考虑如何实现并行求解。一个很自然的想法就是直接做分布式训练,但是这种处理方式并没有很好的利用问题本身的性质。对于求解偏微分方程,在经典科学计算领域有一个非常好的并行算法——区域分解。

我们将区域分解的思想应用于神经网络求解偏微分方程。比如把一个正方形区域分成四个部分,加上一点重叠,就可以把单个神经网络训练问题分成子区域网络训练。通过实际测量发现,该方法不仅能够提供良好的并行加速,而且提高了问题的计算精度,实现了计算精度和计算速度的双重效益。

从未来的发展趋势来看,人工智能、超级计算、科学计算将如何发展?三个方向的共同目的是通过某种手段连接现实世界和数字世界。现实世界是人类不断试图认识和改造的客观世界。数字世界是基于计算机的数字虚拟世界,我们可以随意操作和实验。从现实世界到数字世界,至少有四个角度。人工智能可以和科学计算、超级计算结合起来发挥作用。

第一,模型角度。在经典的科学计算中,很多问题是建模非常困难,或者模型精确但不可计算或难以计算,或者模型可以计算但不够精确。届时,或许可以在人工智能的基础上构建更好的模型,比如天气预报领域的湍流模型、分子力场模型、物理过程参数化等。

第二,算法角度。刚才举的PFNN的例子是从算法的角度。人工智能的发展有很多很好的数学工具和思考问题的视角。学习好的数学工具,比如神经网络,可以应用到科学计算中的一些经典问题,比如解线性方程组、解微分方程、解最优化问题等。

第三,软件角度。光有算法和模型是不够的,还需要在计算机上实现,用软件编写,实现。这个过程涉及到大量的编程工作,很容易出错。这时候借助机器学习等手段,可以把人从编译优化、自适应调优、代码自动生成等繁重的体力劳动中解放出来。

最后是硬件角度。事实上,AI已经深刻改变了超算硬件的发展,未来还会有更多的改变,比如计算单元、芯片、处理器、超算系统的设计。

 
友情链接
鄂ICP备19019357号-22