对于发展可靠的天气和气候预测而言,计算科学至关重要。然而,尽管拥有数十年的高性能计算经验,但在后Moore/Dennard时代,这种应用的可持续性仍受到密切关注。本文讨论了此领域目前存在的限制,并提出了一种新型的基础架构设计。这种架构具有更好的可扩展性,对未来的未知计算架构具有很强的适用性。
关于人类活动对大气中温室气体浓度和气候系统的影响,已有大量的科学出版发表并进行了解释。目前超过97%的地球系统科学界已经接受了这样的结论——人为温室气体排放需要在几十年内大幅度减少,以避免气候灾难。由于目前自然灾害在全球范围内的影响异常惊人,对极端天气(比如热带气旋的数量和强度、热浪和干旱同时发生的可能性)的准确预测面临非常大的压力。2010-2019年是记录以来损失最严重的十年,经济损失达到2.98万亿美元,相比于2000-2009年高出1.19万亿美元。极端天气以及未能应对的气候变化都是对我们未来造成影响的主要风险。
但这些损失并不能否定过去几十年由于观测系统的改善、对地球系统中发生和相互作用的物理过程更好的理解以及在成本几乎不变的情况下计算技术性能的指数增长的共同作用下天气预测方面的稳步发展。然而,出于以下两个原因,目前的发展速度受到了质疑。
一是气候变化(尤其是极端事件的强度和发生频率)对我们环境的显著影响迫切需要政治响应,而且对于未来气候变化更好的预测需要尽快取得进展。
地球系统模型需要的不仅仅是稳定的进展和飞跃到非常高的分辨率,更真实的呈现所有尺度过程及其在大气层、海洋、冰冻圈、陆地表面和生物圈之间的相互作用。这种飞跃将不可避免地转化为我们对计算和数据处理能力需求的飞跃。
二是数据“爆炸”所带来的挑战和Dennard和Moore定律的消亡让我们重新思考,我们在处理极端尺度的地球系统建模和高性能计算的方式。
Dennard缩放比例定律表明,缩小晶体管的特征尺寸也会降低它们的功耗,这样在每一代处理器的频率可以提高,而单位芯片面积的散热却大致保持不变。15年前,Dennard定律就已经消亡,并导致了"多核危机"和并行处理的出现。摩尔定律指出,每18个月,芯片上的晶体管数量会以大致相同的成本增加一倍,从而推动了计算经济学的发展。然而,随着最新一代芯片的出现,每个晶体管的成本开始上升,这意味着这一定律的终结。因此,为了提高性能,同时保持成本不变,需要更有效地使用晶体管。
我们将从上述角度出发,提出潜在的解决方案,以适应我们目前的算法框架,从而最好地利用新的数字技术应对上述挑战。我们将提出一个通用的、可扩展的和高性能的预测系统架构的概念,这个架构可以将我们的天气和气候预测能力提高到所需的水平。此外,强大的机器学习工具可以加速这个概念中几乎所有部分的进展。
自从上世纪40年代约翰·冯·诺依曼的“气象项目”以来,天气预报一直是数值计算机模拟的开创性应用。自那时以来已经取得了很多成就,今天的全球运行预测能在一个小时内完成,这些模式包括约1000万个网格点、100个垂直层和10个预测变量,每天使用1亿个观测数据进行初始化。这些计算运行在美国、亚洲和欧洲供应商提供的数百个通用中央处理器(CPU)节点上。尽管为了预测状态和不确定性,运行集合模拟的需要使计算和数据负担成倍增加,但已被证明对决策非常有利。
图1 业务数值天气预报的典型工作流程
(1) 大容量高频率观测数据的获取和预处理 (2) 模式资料同化为预报生成初始条件
(3) 地球系统模式生成预测 (4) 根据天气和气候信息用户需求生成预测产品
(5) 原始输出和网络产品的分发 (6) 长期存档以便进行统计分析和性能诊断
(7) 特定用户应用和数据驱动分析
图1展示了业务数值天预报工作流程的各要素,其中步骤2-4是计算(千兆次浮点运算)和数据(每天100tb)密集型过程。天气模拟与气候模拟的不同之处在于,天气模拟在每天的特定时间以 突发模式(burst mode) 进行,而气候预测则以 稳定生成模式(steady-production mode) 进行,以完成数十年、百年和千年的气候预测。
考虑到计算方面的限制,天气和气候模型在过去几十年中分道扬镳: 气候模型需要代表封闭和稳定的能量、水和组成循环,而牺牲了小尺度过程的细节; 另一方面,天气模型需要这种程度的细节,以便在局部进行准确的预报,但排除那些在日-季节尺度上与天气关系不大的地球系统过程。比如,水循环的精确描述对于天气和气候模式而言是非常重要的,而碳循环仅对于气候时间尺度比较重要。目前学界已经逐渐意识到小尺度过程对于气候预测的重要性以及气候预测对于天气预测的重要性,并已经开始协同发展。因此,我们需要更高分辨率的地球系统模式,同时要处理地球系统的复杂性。
在目前最快的超算上将计算能力扩展到极限,我们可以比较高分辨率模拟和真实观测究竟有多接近以及现有代码对计算的影响有多大(图2)。这些实验表明,仅用于预报而言,这些计算机无法提供全耦合地球系统模式高分辨率模拟所需的吞吐量,而且也无法有效的处理这些模拟所产生的数据。这使得未来极端尺度的天气和气候模拟以及数据处理成为一个挑战。
图2 观测和模拟卫星图像对比
左侧卫星数据为 Meteosat第二代旋转增强可见光和红外图像
右侧为ECMWF IFS 1km分辨率模拟结果
气候变化的紧迫性和比过去更快地取得进展的必要性,不仅仅是预报模式的升级。为了建立一个支持政策和决策的信息系统,图1所示的工作流程需要扩展到依赖天气和气候的应用,如能源、粮食、水和灾害管理,并增加灵活性以测试科学和社会经济情景。这种信息系统被称为数字孪生系统 (见原文Box1)。孪生系统通过模拟和观测并通过充分整合地球系统中的行业和人类行为的影响,生成真实世界的数字复刻。随着第四次工业革命背景下网络实体系统(cyber-physical systems) 的出现,这一概念正越来越多地应用于工程以外的其他领域--天气和气候预测。
持续编码适应新兴技术可以追溯到20世纪70年代,当时超级计算机已经商业化,并被预测中心使用。技术上的主要破坏恰好发生在模式大幅提高空间分辨率的时期,这得益于并行的大幅度增强。从那时起,这些代码就受益于摩尔定律和丹纳德定标,没有受到太多压力去从根本上修改数值方法和编程范式。
这导致了非常大的遗留代码,主要是由科学方面的考虑驱动的,留给计算科学创新的空间非常小。其结果是,这种代码在当今的 CPU 机器上只能实现约5% 的持续浮点性能,只要 CPU 技术在时钟速度、内存大小和访问速度方面实现指数级性能增长,就足够了。现在,随着这种增长停止和能源成本上升,一个计算“鸿沟”隐约出现,我们必须克服这个鸿沟,以提供更好和更具成本效益的预测。
地球系统模型将空间和时间分辨过程的物理方程组离散化,并对云微物理学和湍流等影响分辨尺度预测变量的无法解析过程使用参数化。同样的情况也适用于数据同化,它的计算性能主要由预报模型和代表海洋过程、表面波、海冰、陆地表面包括植被等地球系统的耦合组件驱动。不同的离散化选择意味着不同的解决方案,每个时间步长具有特定的内存访问和数据通信模式。时间步长本身是一个重要的成本因素,取决于离散化的选择,但也受到问题的非线性以及需要解决的运动类型和速度的限制。
在过去的十年里,已经有几个项目旨在大幅度加快天气和气候预测代码基础设施的建设。然而,有人会称这些改进为“传统的”,因为它们避免触及基本的算法概念,而是沿着已知的科学软件开发路径工作。这些代码主要由科学家编写,然后计算机科学家通过逐步重构代码提取性能,通常改进内存和通信处理,通过引入代码指令利用并行性和基于标准编程模型的向量化。
最近,为了提高带宽和计算吞吐量,研究了将精度降低到双精度缺省值以下的选择。在一个复杂的非线性天气模型中,低于单一精度的精度降低是非平凡的。另一个途径是提高不同模型子组件的并发执行,从而打破了传统的、严格的每个时间步骤物理过程计算的顺序执行。在海冰和海洋动力学计算共同执行的情况下,这也是相关的。更一般地说,重叠计算和数据传输可以加速严重依赖数据通信的个别数值算法,或者加速数据分析和后处理与模型同时运行的工作流。
将计算密集型的代码部分移植到新的体系结构中,比如支持 GPU 加速的系统和多核处理器,已经取得了良好的效果,但是通常需要费力地重写代码。早期基于 Fortran 到 CUDA 的源到源转换成功地使得美国国家海洋和大气管理局的全球非静力二十面体模型(NIM)可以跨多种架构移植,包括 NVDIA GPU。重写了小尺度模型联盟(COSMO)的动力核心以及物理参量化的移植,形成了第一个在GPU加速系统上运行的完全可操作的、有限区域的气候和天气模型。目前美国能源部的百万兆等级运算/地球系统项目(ECP)在进行中,该项目旨在将能源 Exascale 地球系统模型(ESMD/E3SM)演化为新颖的计算结构。美国国家大气研究中心(NCAR)的高分辨率版本的社区地球系统模型(CESM)代码已广泛适应和优化的异构管理/计算处理元素在 Sunway 太湖之光超级计算机体系结构。此外,英国气象局(Met Office)正在领导英国的一个大型项目,以实施统一模型(Unified Model,UM)的后续项目,这样一来,任何可想象的未来架构都可以得到支持。在日本,高分辨率建模和大型数据同化集成技术的发展打破了世界上最大的超级计算机设施的类似障碍。下面的现代代码设计实践可能会从这些工作中产生。
最近的性能评估表明,目前的编码远远达不到业务所需的吞吐量目标。传统的代码调整将不足以实现必要的效率增益,而且随着技术不断变化,手动调整也不可持续。因此,需要仔细检查基本算法框架的适用性,并且需要加入诸如机器学习之类的新的数据驱动方法,它们承诺在不损失质量的情况下节省成本。由于数字技术发展迅速,性能和可移植性都很重要。最终目标是避免技术锁定和算法锁定。
数据结构和离散化
这部分内容主要强调了,在研究更有效的措施提高计算性能之前,需要主要到一些基本架构的构建块,比如空间离散化、时间步前向步进以及地球系统构成的耦合等。上述提到的构建块都依赖于数据结构。实际的性能度量应该反映整个问题的复杂性,这远远超出了可实现的浮点运算速率。
由于时间步进算法和空间离散化选择结合特定的平流输送方案是不独立的,通过适当的选择可以获得大量的加速。将大时间步长方法与高阶离散方法相结合,可以达到高效、准确的目的。许多不同的天气和气候过程的时间尺度和长度尺度非线性相互作用,导致连续而不是完全分离的运动光谱,这与其他多种物理应用不同,后者由于时间和长度尺度的巨大差异,过程和计算很容易分开。另一种方法是关于并行时间方法,由于大规模并行处理机计算机的出现,这种方法重新引起了人们的兴趣。与空间离散化相比,在天气和气候应用中,并行化时间的特殊问题是考虑流动的时间历史的依赖性,并保持集成的精度和数值稳定性。
网格和网格的连通性选择与离散化紧密相连,是模型的整体数据结构。由于天气和气候模型的复杂性,不容易灵活地改变数据结构或使用异步数据流程序模型。现有的结构往往明确或隐含地绑定到一个特定的结构或非结构网格安排的运算法则。更多的通用方法可以预测数据驻留在哪里以及下一步数据将在哪里,但也可以帮助开发新兴硬件平台上不断增加的内存层次结构。
性能和可移植性
深入挖掘模型和数据同化架构需要将代码分解成特定领域的关键算法主题,并用定义良好的应用程序编程接口(API)将它们封装在单独的中等规模的应用程序中。这大大有助于识别它们特定的性能瓶颈,并通过替代编程模型和替代算法使它们适应不同的硬件架构。建立这种中等规模的应用程序并与供应商和学术界分享这些应用程序,也是一种普遍的做法,目的是扩大对天气和气候模型关键要素的认识,同时将这种研究范围从大气层应用扩大到用于海洋、波浪、海冰和生物地球化学模型的数值算法。
虽然在特定 HPC 架构上的定制实现可以获得大量的加速,但是在不牺牲可移植性的情况下实现性能对于避免不断重写特定硬件选项的复杂软件的解决方案是至关重要的。今天,大多数模型和数据同化系统仍然基于数百万行的 Fortran 代码。此外,他们在混合并行方案中采用了相当严格的块结构,使用了消息传递接口(MPI)和开放多处理(OpenMP) ,并在模型应用程序中结合了领域知识或方便驱动的数据流。完全修改这种方法的基础再次是通用数据结构和特定领域的软件概念,这些概念将科学代码与依赖硬件的软件层分开ーー区分前端的算法灵活性和后端的硬件灵活性。理想情况下,这将产生一个跨多种体系结构的整个复杂耦合应用程序的单一数据结构视图,用于观测处理、模拟、同化、 i/o、后处理和存档数据的整个工作流。
目前,DoE支持重写基于 Kokkos C++库的 E3SM 气候模型,以实现 GPU 和 CPU 的性能可移植性,从而开发这种特定领域的软件框架。英国气象局与学术界的合作伙伴合作,开发了一个名为 PsyClone 的软件框架。气象卫星计划和瑞士国家超级计算中心的 CSCS 首创了嵌入式领域特定语言结构的使用,通过他们的 COSMO 适应基于 C++ STELLA/Gridtools 库,所有的性能可移植性在能源效率,脑海中的异构硬件。这增加了代码生成工具的流行程度,并在未来的模型开发中对结构和关注点分离进行了根本性的重新思考,承诺了一条彻底改写现有单块和领域特定代码的途径。除了 CPU 和 GPU,这种方法还支持专门的数据流处理器,如现场可编程门阵列(FPGA)或应用专用集成电路(ASIC)。
机器学习
尽管最近机器学习项目纷至沓来,但仍难以预测机器学习的应用将如何影响未来天气和气候模型的发展。 有一些基于机器学习建立预测模型的方法战胜了现有的预测系统,特别是对于非常短的(比如短临预报)和非常长的(比如多季节)预报,也可以用于中期预测。然而,大多数天气和气候界人士仍然对使用黑匣子的深度学习预报系统持怀疑态度。深度学习工具的预测旨在混合建模方法,将物理过程模型与数据驱动的机器学习工具的多功能性相结合,以达到最佳效果。
无论如何机器学习都会一直存在下去,并且已经对图1中预测工作流程的所有组成部分的发展产生了显著的影响,例如,短临预报和观测处理、数据同化、预测模型(用于模拟参数化方案和参数调整)以及后处理(例如,在特征检测、降尺度应用以及不确定性量化)。
尽管如此,机器学习对天气和气候建模的影响超越了改进预测系统的工具的开发。人工智能是一个价值数万亿美元的市场,是整个超级计算机市场价值的倍数,而机器学习在未来将继续对硬件发展产生重大影响。 虽然联合设计的处理器是为深度学习应用程序开发的ーー例如 TPU 处理器(TPU)ーー但是一般高性能计算机市场的商品硬件将有深度学习的加速器,例如 NVIDIA Volta GPU上的 Tensor Cores。机器学习对 CPU 、互连技术以及计算机系统设计也有很大的影响。
专门的机器学习硬件针对数值精度低(等于或低于一半精度)的密集线性代数计算进行了优化,并显著改进了使用这种算法的应用程序的性能。虽然目前复杂机器学习解决方案的训练和推理在基于GPU的系统上表现最好,但大多数天气和气候中心仍然依赖于传统的基于CPU的系统。 尽管将精度降低到三位有效的十进制数字(只有 IEEE 的一半精度)具有挑战性,也并非不可能,但目前还没有任何天气和气候模型能够以低于单一精度的算术运行。
由于在地球系统模型中使用机器学习加速器的测试还处于初级阶段,天气和气候界在很大程度上还没有准备好使用为机器学习应用程序优化的硬件。 另一方面,当在预测流程中使用深度学习解决方案时,需要使用机器学习加速器和低数值精度,特别是如果用于模拟和替换计算代价大的模型组件,否则将非常难以移植到加速器,如物理参量化方案或数据同化的切线性模型。因此,机器学习,特别是深度学习,也显示出了作为 HPC 高效代码和性能可移植性的捷径的潜力。
由于天气和气候预测的流程非常复杂,具有大量的数据前/后处理以及高吞吐量的计算过程(例如数字孪生的概念)。因此,想要提出一个适用于天气和气候预测所有方面的计算基础设施几乎是不可能的。方框1解释了 数字孪生(digital-twin) 概念及其基于信息理论的模拟和观测的持续融合的基础。
考虑到这些限制,我们重点集中在机器和软件生态系统上,以最有效地解决数字孪生在的极端尺度方面的应用。为此,我们提出三个问题: (1)数字孪生的需求是什么?(2)什么是最有效和最可持续的软件生态系统?(3)在不久的将来,什么样的技术和机器规模可以运行数字孪生?
应用需求
根据数字孪生的定义,其极端尺度的计算需求主要取决于预测模型本身。尽管这对数字孪生是基于使用模拟和观测的大量集合优化问题,其效率和可扩展性取决于模型。
观测处理以及匹配观测和模型输出的计算代价较低。优化程序本身主要是基于以各种形式执行模型运行和执行内存密集型矩阵操作。数字孪生基准将使用一个非常高分辨率的耦合地球系统集合模式。注意:空间分辨率的提高对计算和数据增长的影响最大。当在水平维度上将模拟网格细化2倍时,计算需求大致增长8倍,因为在两个空间维度上,每一个维度的分辨率增加一倍,都需要相应增加模拟所需的时间步数。
对于集合预报而言,需要的集合成员越多,那么集合模式运行的需求就越高。然而,滞后集合和使用机器学习作为成本更低的替代方法来描述不确定性能够产生巨大的效率收益。
软件生态系统
根据前面所讨论的,基于灵活控制和数据结构的计算和数据感知算法框架可以大大减少计算和数据占用。此外,这样的框架必须重叠的执行单个模型组件,集中在具有很少的数据移动开销的模块操作,尽可能延长时间步骤和降低算术精度。通过机器学习替代模型可以进一步节省计算开销。
根据我们在前几节所讲的内容,基于灵活控制和数据结构的计算和数据感知算法框架可以大幅减少计算和数据占用。此外,这种框架必须重叠执行各个模型组件,专注于数据移动开销小的模板操作,尽可能拉长时间步骤,降低算术精度。机器学习可以替代模式以进一步节省计算开销。
除了产生成本节约外,修订后的算法框架还有利于实现更通用的软件基础架构,使未来的代码更具可移植性,因此具有可持续性。然而,需要注意的是,在低级环境中实现高性能代码并不简单,需要很强的专业知识。我们提出将编程问题的关注点严格分离为一个富有成效的前端(例如,用于相关计算模式的基于Python的特定领域软件框架)和用于优化的中间表示(例如,多级中间表示(MLIR)或状态数据流多图(SDFG)),然后可以为目标架构生成调整后的代码。类似的方法也用于机器学习,在机器学习中,使用PyTorch或TensorFlow编写模型,然后使用加速线性代数(XLA)或TensorRT等工具将其编译成优化的库进行调用。我们预计前端的设计将专门针对我们的领域或至少针对某些计算模式,而许多关于中间表示的优化和转换(例如,循环分层和融合)可以在多个领域重复使用。因此,性能的工程性工作可以利用现有的设施,也可以从其他科学学科以及机器学习中获益。
候选机器
摩尔定律和Dennard缩放比例定律的结束迫使我们考虑不同的架构变体,以便最有效地使用每个晶体管。针对特定领域、天气和气候的架构设计需要采用先进的硅工艺制造,才能在能耗和性能方面具有竞争力。为了最大限度地提高性能和成本效益,有必要使用最新、最小的制造工艺。虽然使用最新工艺会使制造成本增长非常快,但性能增长更快。低性能的产品相应的成本也低。因此,如今要构建高性能的特定领域架构需要很大的市场,如深度学习,需要数亿美元的投资。这意味着真正的天气和气候领域的联合设计架构可能无法实现,除非能获得与气候变化影响成本规模相称的资金。
如果我们求助于具有大批量市场并能实现高性能专门计算的商品设备,我们只能选择矢量化CPU、高线程GPU或可重构FPGA。所有这些器件都采用最新的硅工艺制造,并提供高性能的解决方案。信息处理系统中的大部分能量都用于在芯片之间或芯片上移动数据。只有很小一部分能量实际被消耗在执行计算上。这是由于当今架构中的存在大量的控制开销,而加速器的创新主要是为了减少这些控制开销。两个典型的例子是富士通A64FX CPU中实现的宽向量化或NVIDIA的A100加速器中的宽单指令多线程(SIMT)式GPU机器。通过调查这些设备类型上天气和气候代码中常见的模板程序的界限,我们可以得出结论,如果最新的高矢量化CPU的内存带宽与GPU相匹配,那么它们可以与GPU竞争。遗憾的是,高带宽内存是最近才加入FPGA的,因此在不久的将来,它们的性能仍然会被GPU所超越。
因此,目前一个务实的选择是基于CPU-GPU的解决方案。然而,如果工业界继续在可重构结构(类似于英特尔的Stratix 10)上加固浮点逻辑,并增加高带宽的内存连接,那么CGRA式(粗粒度可重构架构)设备的性能和能效将超过GPU和CPU。
这种技术上的不确定性也使得用性能可移植的语言来实现新的代码成为当务之急,这一点我们在上面已经提出。因此,未来几年最具竞争力的架构很可能是GPU加速的系统,我们现在需要对其进行粗略的规模估计。
机器设计的一个重要考虑因素是平衡。具体来说,我们的机器需要很好地平衡计算、内存和存储性能,因为考虑到部分重新计算,存储/计算价格的权衡很容易调整。
具体的设计应该根据我们的领域进行调整,在特定时间内,考虑到现有的硬件,强调数据移动而不是原始浮点性能。一个足够大的HPC系统也会产生环境影响,这一点需要考虑。根据美国环境保护局的统计,每兆瓦时的二氧化碳排放量约为1000磅,这样的模拟机器如果建在电力供应不佳的地区,每年会产生大量的二氧化碳。因此,由于耗电率大,性能和效率不仅要使运行经济,还要对环境友好。
图3 地球系统数字孪生系统的高效软件基础设施的概念图
图3展示了整个基础设施的协同发展作用的概念图。通用控制层和数据结构提供了工作流和算法的灵活性,支持各种网格布局、数值方法和重叠以及并行化模型组件(流程)执行和它们之间的耦合。
机器学习可以提供计算效率,也可以从数据分析中更好的描述物理过程。代码遵循分离的关注范式,即前端,高度易读的科学代码是从硬件特定的,大量优化的代码后端分离。该链接由特定领域的软件工具链提供。
系统架构最大化了解决方案的时间和精力,并利用了集中式部署和基于云的部署。重要的是要理解计算机硬件和软件在不同时间尺度上的发展。软件的寿命可以是几十年,而高性能的硬件通常使用不到五年。因此,所提出的算法和软件投资应提供最大的灵活性和开放性,以适应快速发展的新技术。
图4 实现关键科学和计算技术性能目标所必需的主要系统发展的预期贡献
所有这些因素会降低多少成本还没有完全量化,但图4给出了我们对本文所概述的贡献的潜在相对影响的估计。最佳的系统设计需要同时考虑这些贡献的因素--因为它们是相互依赖的--这样才能充分实现超越技术水平的整体效益。
计算机系统的发展和创新永远不会停止。最佳的性价比点很快会改变,三年后,一个系统设计很可能会有大有不同。例如,我们可以想象软件突破的发生,将使得在地球系统科学计算中进行极低精度的算术运算,从而大幅降低内存和数据通信开销。在可重构或空间以及模拟计算方面的硬件突破也可能变得极具竞争力。
气候变化所带来的社会挑战要求预测技能发生阶梯式的变化,而这种变化是无法通过渐进式的增强来实现的,在地球系统和计算科学的接口处进行大量投资以促进本文所述的代码设计革命的时机已经成熟。与收益相比,这种努力的成本是很小的。
上述内容基于 彩云小译 和 DeepL 翻译,并进行了适当的调整。编译不当之处,敬请指正。
end