摘 要: CESM是由美国国家大气中心于2010年发布的新一代地球系统模式,是目前最先进、使用最广泛的地球系统模式之一。CESM利用耦合器协同大气、海洋、陆面、海冰等分量模式进行气候模拟。本文在集群平台对大气水平分辨率111km、陆面水平分辨率220km和海洋、海冰水平分辨率110km的CESM算例进行了全面性能测试。通过剖析CESM耦合器与分量模式间的依赖关系本文提出了CESM全局性能模型框架;通过探究CESM各分量模式的性能特征得出CESM耦合系统中计算资源需求最大的分量模式是海洋分量模式和大气分量模式,影响其性能的核心模块分别是海洋分量模式的正压、斜压方程求解和大气分量模式的动力框架及物理过程的计算;分析其主要影响因素,结合几何相似性方法,本文对各分量模式进行了初步性能建模;通过整合分量模式的性能模型提出了CESM全局性能模型,其预测误差均控制在10.3%以内。最后通过该性能模型指导进程分配,使实验算例有33%的性能提升。
关键词: CESM;性能建模;性能预测
地球系统模式为地球系统变化规律、认识人类活动与全球变化之间的相互作用研究,以及相应政策制定提供了不可或缺的定量依据,是上述研究的科学量化工具之一。同时,地球系统模式也是科学计算领域最重要的高性能计算应用之一,是TITAN、Tianhe-1A、K Computer等世界顶尖计算系统上杀手级应用[1]。由于全球气候变化是一个长期过程,利用地球系统模式进行气候变化模拟通常需要模式积分几百年甚至上千年,对计算资源量需求巨大;而且地球系统模式中不同的模块所描述的物理过程不同,计算量也不同,人们在运行过程中可以依据不同的模拟场景和算例的分辨率使用几百到几万个计算核心[3],所以对地球模型进行性能建模,依据模型的预测结果建立合理的资源分配方案,对运算进程进行优化映射是地球系统模式充分利用现有计算能力和性能优化的一个重要手段。
公共地球系统模式(The Community Earth System Model,CESM)是目前被广泛使用的复杂地球模拟系统之一,是由美国国家大气中心(National Center For Atmospheric Research,NCAR)在共同气候系统模式(Community Climate System Model,CCSM)[2]的基础上改进研发,于2010年推出的新一代系统模式。在完全兼容CCSM的基础上,它还支持陆地碳循环、动态植被等更多的物理、生物和化学过程,并将不同组织研发的分量模式通过耦合器进行联合,增加了气候模式框架的可插拔性。同时,CESM提供了单一可执行文件和灵活进程映射功能便于程序移植和优化。
在公共地球系统模式性能分析和优化方面,Worley等分析了影响CESM各分量模式计算性能的因素[4],并对大气分量模式(the Community Atmosphere Model,CAM)在不同参数配置下做了性能分析[5];Dennis等进一步研究了高分辨率下CESM计算性能的可扩展性[6],并通过对实验结果的对比分析验证了谱元动力框架相对有限差分等框架具有良好的可扩展性[7];Kerbyson等专门针对高分辨率的POP分量模式分析了其计算网格的划分,并对海洋分量模式进行了系统地性能建模[8];Craig等对CESM耦合器部分的工作流程和重要函数进行了简要分析和性能测试[9]。上述工作的共同特点都是仅对某个分量模式进行分析与优化,但没有全局性能的分析和建模,同时缺少利用性能模型指导模式进程分配的工作。
地球系统模式CESM灵活的进程映射功能虽然为科研工作者提供了很大的性能优化空间,但由此也使得模式整体的计算效率具有很大的不确定性,因此,本文在CESM全局性能分析的基础上,提出了一种全局性能建模方案,为科研工作者在计算过程中计算资源的合理分配提供参考,以达到最优的计算效率。本文第一部分简要介绍了CESM耦合模式、建模思路及实验平台;第二部分通过剖析CESM耦合器与分量模式间的依赖关系提出了CESM全局性能模型框架;第三部分通过探究CESM各分量模式的性能特征得出影响计算资源需求最大的海洋分量模式和大气分量模式性能的核心模块分别是正压、斜压的通信与计算和动力框架通信计算及物理过程的计算,并结合几何相似法对各分量模式及CESM全局进行了初步性能建模;在第四部分对构建的性能模型进行了检验;最后对存在的问题进行了讨论。
1 CESM介绍及全局性能建模方法
在本研究中采用的是CESM1.0.3,它由大气(简称ATM)、海洋(简称OCN)、陆面(简称LND)、海冰(简称ICE)和陆冰(简称GLC)5个分量模式以及控制各分量交互的耦合器(简称CPL)组成,每个分量模式由动力模式和数据版模式等多种选择,可以进行多种组合满足不同的研究目的,并且各分量模式及耦合器均为并行模型,它们同时支持分布式内存和共享内存两种并行机制,可以非常灵活的使用各种计算资源。本研究选取了分辨率为ne30_f19_g16的耦合模式比较计划案例作为性能测试案例,该案例的模拟场景是工业革命前控制实验(B1850),即除陆冰模式外,其余分量模式都为动力模式,大气模式为the Community Atmosphere Model Version 5 (CAM,版本5.0[10]),陆面模式为the Community Land Model Version 4 (CLM,版本4.0[15]),海冰模式为the Los Alamos sea ice model version 4 (CICE, 版本4.0[12]),海洋模式为the Parallel Ocean Program version 2 (POP,版本2.0[11]),其分辨率分别是:大气模式水平分辨率为111km,陆面模式水平分辨、率为220km,海洋和海冰模式分辨率为110km。本文实验平台与算例的详细信息如表1所示。
CESM求解的是一个复杂的非线性系统,与独立的大气模式、海洋模式、海冰模式和陆地模式不同的是,CESM需要综合控制各个分量模式及其相互之间的数据交换,所以整个系统的变化不仅依赖于各分量模式自身相对独立的发展和变化,更依赖于他们之间的相互作用关系及其所形成的总体行为。因此,本研究首先通过探究耦合器与各分量模式之间的逻辑依赖关系构建 CESM全局性能框架,在此基础上根据如下步骤进行建模:1)确定核心模块。顺序运行CESM各分量模式,结合实验结果与CESM代码,确定影响CESM运行时间的核心模块;2)建立计算和通信模型。分析各核心模块的计算与通信特征,分别对具有相同计算特征和相同通信机制的部分采用相同建模方法。通过对不同并行度的性能测试,利用几何相似法对结果曲线拟合,找到影响核心模块性能的因变量与自变量并确定变化关系;3)建立CESM全局性能模型。依据CESM运行流程将2)中的性能模型整合,得到全局性能模型;4)验证性能模型。通过对比相同并行度下实验顺序运行与并行运行的实际测量值和性能模型的预测值,验证提取核心模块的正确性和CESM性能模型的准确度。
Table 1 The experiment information
表1 实验信息
实验算例 实验集群平台
2 CESM全局性能框架
耦合器作为各分量模式联合的枢纽,接收各个分量模式的二维边界数据,并将收集到的数据做适当的计算整合,再转换成各分量模式运行所需数据回传给各分量。所以构建 CESM全局性能框架的一个重要依据是探究耦合器与各分量模式之间的逻辑依赖关系。
从运行流程的角度分析,图1为CESM耦合流程中最主要的17个过程,上方标题栏表示各列过程所属的通信域,左侧过程标号按照驱动模块中调用的顺序进行标识,箭头表示数据流向,虚线区域表示海洋模式与耦合器CPL耦合过程。从图1中可以看出,除了各个分量模式及耦合器各有通信域外,各分量模式与耦合器之间也分别建立了联合通信域,该联合通信域用于各分量模式与耦合器的通信,过程2/4/6/11/12/14/16/17属于联合通信域。图1中过程都会交由相应通信域中的进程执行。如果CESM在给某两个通信域分配进程时无重叠,即不存在被两个通信域共享的进程,则这两个通信域可以并行执行;如果通信域存在重叠情况,则两个通信域的过程需要顺序执行。从过程4到过程12可以看出,CPL/LND/ICE在运行时存在着部分可并行的情况,在配置运行时,这3个通信域的配置比较灵活,可以互相不重叠,也可以某两个通信域共享另一个模块的通信域。针对大气分量模式的过程14/15/16,在CESM运行到过程14处时,LND和ICE已经运行完毕,这两个分量模式通信域已经闲置,所以通常会让LND和ICE与大气模式复用进程,而CPL在大气模式计算量最大的过程15时不执行,所以让CPL分享一部分大气模式的进程是常用的并行手段之一。基于上述分析,可以得到一种普适的CESM进程分配策略,海洋模式与其他分量模式并行执行,大气、耦合器、陆面和海冰模式串行执行,如图2所示。
从图2可以看出,由于海洋模式与其他分量模式并行执行,CESM的整体性能被并行运行的模块中性能较差的一方所决定,则CESM全局性能框架Tcesm为:
其中Tpop、Tcam、Tclm、Tcice和Tcpl分别为海洋模式POP、大气模式CAM、陆面模式CLM、海冰模式CICE和耦合器CPL的运行时间。在此基础上,对CESM性能模型进行准确构建的重要因素就是对分量模式的透彻理解与分析。本文在实验平台二上对ne30_f19_g16分辨率的B1850场景进行10天模拟,通过顺序运行分量模式得到独立分量模式的实际性能。值得注意的是,在测试中未计入I/O部分的影响,且仅仅考虑了多进程并行的性能变化。图3为测试结果,表示各个分量模式及耦合器在不同并行度下的实际性能及各分量模式占CESM总开销的比例。从该结果可以看出,在CESM模式中海洋模式与大气模式是对计算资源需求最大的两个分量模式。耦合器CPL模块的耗时相对较少,对CESM的性能影响较小。基于上述理论分析,第3节将着重分析POP和CAM两个分量模式,CLM和CICE只进行简单的整体建模。
Fig.3 The time-consuming proportion of CESM componets(B1850, ne30f19g16)for ten days simulation
图3 顺序运行CESM各模块进行10天模拟耗时(s)及比例(B1850,ne30f19g16)
3 CESM性能建模
海洋模式POP的计算特征是每个积分步都可以被拆分成正压和斜压两个部分,正压是描述海洋表面压力的二维计算,采用共轭梯度法求解大规模稀疏线性方程组,求解过程中主要以BLAS1操作和矩阵向量乘法为主,每一步迭代过程中都存在着大量的邻居通信与MPI_Allreduce全局通信,所以,正压部分的性能主要体现在通信消耗上;斜压部分是求解三维流体方程,使用显式的蛙跳积分方法求解,此部分属于计算密集,有少量邻居通信,即斜压部分以计算为主。
大气模式CAM可以分为动力框架和物理过程两部分。动力框架部分是求解三维大气环流演化方程,以网格点为基本计算单元,伴有邻居通信。CAM目前默认使用有限差分(Finite Volumn,FV)动力框架,但是该动力框架使用的是经纬网格,南北极奇异点对数值算法并行性能的影响成为大气模式可扩展性的致命缺点[3]。谱元动力框架则使用非结构化的四边形网格避免了计算奇异点的存在,并通过使用希尔伯特填充曲线(Space-Filling Curve)方法[14],将多维的网格映射到一个二维虚拟处理器网格中来平衡计算负载,同时最小化邻居通信成本。所以本文选用具有良好可扩展性的谱元动力框架进行分析[7]。物理过程对网格垂柱(降雨、云、长短波辐射等)的进行近似计算,主要以计算为主。每个网格垂柱的计算相互独立,受不同地域以及模拟时间等的影响,各网格垂柱计算量也随之不同。
陆面模式CLM为典型的单柱模式。陆面的空间非均匀性用嵌套次网格方法实现,也就是每个网格包含有多种陆地个体、雪、土壤柱块和不同类型的植被。每个网格内有不同数目的陆地个体,每种陆地个体又有不同数目的柱块,每个柱块也可以有多种植被功能型[15]。虽然这样的单柱模式使得陆面模式的强非线性特征更加突出、可扩展性较差,但是由于其模式状态变量与大气和海洋模式相比要少的多,因此陆面模式的计算效率并不像大气模式与海洋模式那样对CESM的整体性能产生严重的影响。
海冰模式CICE水平方向用二维网格表示地球表面,垂直方向代表海冰的厚度。它的计算成本主要体现在海冰网格会在模拟过程中随着时间和空间的变化而变化,原因在于海冰的分布总是在不断发生变化的。这一特点也给CICE的负载均衡问题带来的巨大影响。另一方面,在海冰模式中也存在频繁的邻居通信。
综合POP与CAM两个分量模式的特征来看,不同网格的计算逻辑相同,计算量的统计规律相似,因此可以用各个进程所分配的网格数量来近似量化其计算时间。对于通信部分,均以邻居通信和Allreduce全局通信为主。所以本文在构建性能模型时区别对待其计算和通信部分。同时,本文采用整体建模策略来解决陆面模式CLM与海冰模式CICE分量模式中邻居通信的建模难题,即通过对计算和通信总时间与并行度进行简单线性化分析进行建模。
综上所述,依据各分量模式核心模块的性能特征,将建模方法分为三维建模、二维建模和综合建模。其中三维建模是对POP三维斜压计算与CAM三维网格计算的性能建模,二维建模是对POP正压部分针对二维网格的线性方程组求解算法的性能建模,综合建模是对CLM、CICE两个目前计算耗时较小的分量模式进行整体建模。需要说明的是,建模依据的测试结果均为在平台一上进行B1850场景、ne30_f19_g16分辨率的模拟实验结果。同时,在实验过程中,本研究采用了进程级并行的方案,且在单节点内启动与核数相同的进程数,每个进程分配相似的计算量进行模拟,因此无需考虑了在单节点内因使用不同进程数引起的内存带宽竞争对模式运行时间产生的影响。海洋模式POP采用简单的水平二维划分,每个进程包含单一区块(BLOCK)。
3.1 三维建模
在计算方面,POP斜压计算与CAM动力框架计算都是对以网格垂柱为单位计算资源进行计算,即每个网格垂柱一次运行的开销与区块中实际网格数的乘积。所以两者的计算模型依据计算资源量进行构建。
CAM物理过程的计算开销与上述两者不同,图4给出了在不同并行度下物理过程计算耗时与并行效率曲线图。分析图4可以看出CAM的物理过程计算时间并不能用以计算负载量为自变量的线性函数进行准确建模,而采用并行度与并行效率共同表示更为合理,其中并行效率与并行度呈一定的负相关线性关系。据此可以对物理过程的计算耗时做性能建模。由于实验以12为最小并行度,所以CAM物理过程计算模型以并行度为主要参数,以12并行度的耗时为基准来表示此过程的运行时间。究其原因,物理过程虽然是典型的单柱计算,但是不同网格柱可能发生不同的物理过程而负载不均,建立与并行度的时间模型从总体效果上更好。
在通信方面,POP采用笛卡尔划分方法将计算网格划分为二维区块(BLOCK),并将区块定义为进程间通信的最小单元,为减少通信量,每个区块维护一个环区(Halo),用来存储相邻区块的相邻网格值,Halo在与邻居块区做数据交换时,拆分成东、南、西、北及四个角共8部分进行通信。当需要通信更新计算结果时,只需要对Halo内的数据进行交换即可。所以,POP斜压部分的通信主要集中在Halo的数据更新上。由于各个进程的通信量和通信次数几乎完全相同,本文采用了总体建模的方式。这种方式的好处在于降低单一通信性能偏差带来的总体影响。图5为对POP斜压通信的线性拟合结果。POP斜压通信的模型是以Halo区域中的格点数与并行度为主导因素。
CAM的通信与POP相似,也是邻居通信为主。但由于本实验中CAM采用了空间填充曲线任务划分策略,导致邻居通信量和通信次数不规则。图6为0号进程在不同并行度情况下CAM通信的耗时曲线图,可以看出通信部分耗时可以采用是以单边通信MPI_GET与MPI_PUT通信量之和为自变量的函数来近似表示。
3.2 二维建模
POP正压部分的性能由计算、邻居通信和全局通信共同决定。从网格划分的角度看,斜压部分由二维平面网格与垂直方向构成了三维网格,正压仅为二维平面网格,所以正压的二维建模是减少了垂直深度方向上的计算与通信。
在计算方面,计算开销与斜压计算的建模规则相同,可归结为二维水平面上网格一次运行的开销与区块中实际网格数的乘积。
在通信方面,正压邻居通信主要集中在Halo的数据更新上。因此,POP正压通信模型是由Halo区域中的格点数与并行度为主导因素。正压的全局通信以MPI_AllReduce为主。MPI_AllReduce的实现是通过二叉树算法将各进程的通信结果合并,再将最终的结果广播给各进程。其时间复杂度符合log性能模型。结合图7正压全局通信总体性能开销曲线可以看出全局通信开销随并行度增大呈log形态增长,验证了log模型的有效性。
3.3 综合建模
陆面模式CLM和海冰模式CICE中存在大量的邻居通信和部分全局通信。在模式运行过程中,每个进程都会收发多个消息,但从消息粒度建模的准确性不足,所以本文通过整体建模策略来简化CLM与CICE分量模式中邻居通信的建模难题,即通过对计算和通信总时间与并行度进行简单线性化分析进行建模。
图8为不同并行度下CLM平均耗时情况。从图8中可以看出进程数较少时计算时间是CLM总耗时的主要影响因素,并且计算时间与并行度呈负相关线性关系;在达到60进程以上时,通信开销随并行度增加而增加,成为CLM总体耗时的主要影响因素。所以CLM的建模将以并行度为自变量表示其总体运行时间。图9是海冰模式CICE不同并行度下单进程在一个模拟天的耗时情况,与CLM十分相似,所以采用相同的建模原则。
3.4 CESM全局性能建模
综合上述分析,并对测试结果进行线性拟合,CESM全局性能建模如表2。
4 模型验证及结果分析
本文在平台一上利用建立的CESM全局性能模型对场景为B1850、分辨率为ne30_f19_g16场景,并行度为48的性能进行了预测。首先通过顺序运行分量模式得到独立分量模式的实际性能,然后根据建立的性能模型分别对顺序运行和并行运行分量模式两种运行方式下各独立分量模式的耗时进行了预测和验证。表4为48并行度的耗时预测。以串行进程分布方式运行CESM,海洋运行1天,其他模式运行2天,计算得到预测的整体耗时为160.69s,实际耗时176.4s;以并行方式运行,即所有分量模式使用不同计算核心并行运行,计算得到模式运行2天的预测耗时为141.96s,实际耗时为158.4s,两种实验误差分别为8.9%和10.3%。误差的主要来源在于模型中忽略了POP、CAM中的非关键模块以及耦合器CPL的性能开销,CLM与CICE仅从整体趋势上建模来反应其计算性能。同时,建模过程中也未考虑I/O操作带来的性能影响。从实验结果看,该性能模型能够较准确的进行模式的性能预测,并验证了本文对CESM各分量模式中性能核心模块提取的正确性。
构建性能模型的最终目标是指导科研人员在使用地球系统模式时对计算资源进行合理的分配。针对普适CESM并行策略,使并行两部分的执行时间差值最小是一种更优的策略。虽然海冰和陆面模式与大气模式在逻辑上是顺序关系,并且此两模式共用大气模式的进程,但实际两者之间并无逻辑依赖关系,所以,两者之间为串、并行可依据实际计算资源决定。针对上述实验,在使用相同并行度,即共192个计算核心的提前下,首先考虑耗时最长的大气模式,通过性能模型找出一个较48并行度的海洋耗时略少的并行度,如144,即与海洋模式并行执行的部分共分配144核,根据性能模型计算得大气模式进行一天模拟的耗时为20.78s。海冰和陆面模式并行执行,通过性能模型计算可知48并行度的陆面模式与96并行的海冰模式为这144个进程的最佳分配方案。此时陆面模式一天模拟耗时为1.31s,海冰模式为5.2s。在这样的配置下,与海洋模式并行运行的部分的性能取决于大气模式和海冰模式,它们的总开销为25.97s,此时海洋为16.14s。据此预测模式运行2天的耗时应是51.94s,而实际运行测量时间为57.6s,CESM性能模型的误差值为9.8%。该结果与上述实测并行运行时间158.4s相比,有33%的性能提升。
考虑到在实际研究过程中,通常计算资源都是有限的,本研究给出在已知计算资源P的情况下,依据初步性能建模指导普适CESM并行策略进程分配的一般步骤,如下:
1、为大气模式CAM和海洋模式POP模型各分配P/2个进程;
2、使耦合器CPL与CAM共用CAM的P/2个进程;
3、海冰模式CICE和陆面模式CLM共用CAM进程组,同时使用性能模型进行预测。令Tclm=Tcice;
4、若Tcam+max(Tclm,Tcice) ≈ Tpop,目前进程分配已为合理配置;
5、若Tcam+max(Tclm,Tcice)﹤Tpop,则为POP分配更多的进程ΔP,同时分配给CAM的进程数减少ΔP,返回步骤2;
6、若Tcam+max(Tclm,Tcice)﹥Tpop,则为不等号左侧部分分配更多的进程ΔP,同时分配给POP的进程数减少ΔP,返回步骤2。
5 结论
针对地球系统模型计算中计算资源的合理分配问题,本文通过剖析CESM各分量模式间的依赖关系提出了CESM全局性能模型框架;在此基础上利用其主要影响因素,结合几何相似性方法对各分量模式的核心模块进行了初步性能建模;所得到的CESM全局性能模型,其预测误差均控制在10.3%以内。最后通过该性能模型指导进程分配,使实验算例有33%的性能提升。CESM的性能建模是一个非常富有挑战的工作,本文工作对单节点内存带宽竞争、I/O操作,以及线程级并行尚没有进行深入分析和探讨。上述不足是本研究今后完善CESM性能建模的工作方向。
References:
[1] Warren M.Washington. Scientific Grand Challenges: Challenges in Climate Change Science and the Role of Computing at the Extreme Scale[OL]. URL http://www.science.doe.gov/ascr/ProgramDocuments/Docs/ClimateReport.pdf.
[2] About CESM [OL]. URL http://www.cesm.ucar.edu/about/.
[3] Office of Science, U.S. Department of Energy. A Science-Based Case for Large-Scale Simulation. (available from http://www.pnl.gov/scales/), July 30 2003.
[4] Worley, Patrick H., et al. "Performance of the community earth system model. "High Performance Computing, Networking, Storage and Analysis (SC), 2011 International Conference for. IEEE, 2011.
[5] Worley, Patrick H., and John B. Drake. "Performance portability in the physical parameterizations of the community atmospheric model." International Journal of High Performance Computing Applications 19.3 (2005): 187-201.
[6] Dennis, John M., et al. "Computational performance of ultra-high-resolution capability in the Community Earth System Model." International Journal of High Performance Computing Applications 26.1 (2012): 5-16.
[7] Dennis, John M., et al. "CAM-SE: A scalable spectral element dynamical core for the Community Atmosphere Model." International Journal of High Performance Computing Applications 26.1 (2012): 74-89.
[8] Kerbyson, Darren J., and Philip W. Jones. "A performance model of the parallel ocean program." International Journal of High Performance Computing Applications 19.3 (2005): 261-276.
[9] Craig, Anthony P., Mariana Vertenstein, and Robert Jacob. "A new flexible coupler for earth system modeling developed for CCSM4 and CESM1."International Journal of High Performance Computing Applications 26.1 (2012): 31-42.Keene SE. A Programmer’s Guide to Object-Oriented Programming in Common LISP. Boston: Addison-Wesley Longman Publishing Co., Inc., 1988.
[10] Neale, Richard B., et al. "Description of the NCAR community atmosphere model (CAM 5.0)." NCAR Tech. Note NCAR/TN-486+ STR (2010).
[11] Smith, R. D., et al. "The parallel ocean program (POP) reference manual: ocean component of the community climate system model (CCSM)." Los Alamos National Laboratory, LAUR-10-01853 (2010).
[12] Hunke, E. C., and W. H. Lipscomb. "CICE: the Los Alamos Sea Ice Model documentation and software user’s manual version 4.1." Rep. LA-CC-06 12 (2010).
[13] Hoffman, Forrest M., et al. "Vectorizing the community land model. "International Journal of High Performance Computing Applications 19.3 (2005): 247-260.
[14] Dennis, John M. "Partitioning with space-filling curves on the cubed-sphere. "Parallel and Distributed Processing Symposium, 2003. Proceedings. International. IEEE, 2003.
[15] Keith W.Oleson, et al. "Technical Description of version 4.0 of the Community Land Model (CLM)." NCAR Tech. Note NCAR/TN-478+STR (2010).