王天一,姜金荣,迟学斌,张 贺,何卷雄,郝卉群
1(中国科学院 计算机网络信息中心 高性能计算部,北京 100190)
2(中国科学院大学,北京 100049)
3(中国科学院 大气物理研究所 国际气候与环境科学中心,北京 100029)
随着科技的进步,人类活动与地球环境的联系越来越密切[1],逐步衍生出了全球气候变化(global change science)这门新兴学科[2].在早期的全球变化科学研究中,首先提出了气候系统的概念.气候系统主要以地球流体作为研究主体,主要研究大气环流、海洋环流、陆地表层和海冰的物理过程,后来扩展到研究生态与环境系统,形成了地球系统模式[3].世界上的各个国家和地区如中国、美国、英国、欧盟、日本等国家均已建立了各自的地球系统模式[4].
中科院地球系统模式CAS-ESM是中国科学院大气物理研究所发展的、我国自主研发的地球系统模式,是进行地球科学研究的重要工具.CAS-ESM 2.0是中科院地球系统模式的最新版本,参加了第6 次国际耦合模式比较计划(CMIP6)[5,6].
作为高性能计算应用软件,地球系统模式的性能是制约其发展的重要因素之一.CAS-ESM 2.0 在CASESM 1.0 的基础上在大气分模式采用了新的自适应滤波与三维剖分并行计算算法,在高纬地区采用了跳点差分计算格式;在海洋分模式也采用了多种性能优化手段,其可扩展性与计算效率比CAS-ESM 1.0 有了明显的提升.因而有必要对CAS-ESM 2.0 进行性能评估和分析,发现其目前仍然存在的性能瓶颈,为后续的性能优化工作提供理论支持和发展方向.
本文将CAS-ESM 2.0 分别部署在“元”和“地球系统数值模拟装置”两大高性能计算平台上,分别开展耦合数值模拟试验,避免性能测试结果受到平台硬件与软件环境的影响.然后对模拟结果进行评估,分析了CAS-ESM 2.0 的计算速度、可扩展性以及耦合数值模拟中各分模式的表现,找到了CAS-ESM 2.0 仍然存在的性能瓶颈.
CAS-ESM[7,8]是中国科学院大气物理研究所(IAP)基于CESM 1.0[9]版本开发的.CAS-ESM是一个用于模拟地球气候系统的耦合地球系统模式.图1是地球系统模式CAS-ESM 2.0与各分模式的结构图,CASESM 主要由7 个单独的分模式组成,包括大气、海洋、陆面、陆冰、海冰、大气化学分模式和区域分模式.7 个单独的分模式通过耦合器结合在一起[10,11].通过对编译运行系统进行配置,建立和组装可以模拟和运行的试验.接下来将对CAS-ESM 2.0 所使用的耦合器与主要分模式进行简要介绍.
图1 CAS-ESM 2.0 及各分模式结构
耦合器是地球系统模式的关键组件之一.从图1中可以看出,各分模式之间的数据交换主要通过耦合器来完成.由于各分模式模拟所需的数据类型、网格分辨率以及处理器划分方式各不相同,因而在进行耦合数值模拟试验时,需要通过耦合器来完成数据类型转换、网格分辨率的映射以及处理器划分的处理.
地球系统模式CAS-ESM 使用的耦合器是在CESM的CPL7 耦合器的基础上发展起来的.美国NCAR 研发的CPL 耦合器主要应用于NCAR 提出的“共同气候系统模式(Community Climate System Model,CCSM)”计划中[12],随着CCSM 系统的发展壮大,其成为了目前国际上应用最为广泛的耦合器之一.在此基础上,CASESM 对CPL7 进行了改进,自主研发了适用于大气模式、区域模式与大气化学模式的三维耦合算法[13].
耦合数值模拟试验通过耦合器对各分模式进行统一调度和管理,根据各分模式的耦合频次按时进行分模式之间的数据传输,从而可以模拟整个地球系统变化的复杂试验.本文完成的耦合数值模拟试验采用了目前应用最为广泛的1850年工业革命前的初始场数据进行模拟,使用大气模式AGCM、陆面模式CoLM、海洋模式LICOM和海冰模式CICE 进行耦合.本文将对这几个分模式进行简要介绍.
2.2.1 大气模式IAP AGCM5
大气模式IAP AGCM是中国科学院大气物理研究所发展的大气环流模式[14,15],CAS-ESM 2.0 使用的版本为IAP AGCM5.与IAP AGCM4 相比,IAP AGCM5对动力框架和并行计算进行了改进,采用了新的自适应滤波与三维剖分并行计算算法,在高纬地区采用了跳点差分计算格式;对物理过程参数化方案也做了大量工作,包括深对流参数化、浅对流参数化[16]、宏观云物理过程参数化、微观云物理过程参数化[17],重力波和湍流等.
2.2.2 海洋模式LICOM
海洋模式LICOM是中国科学院大气物理研究所发展的海洋环流模式[18,19],CAS-ESM 2.0 使用的版本为LICOM2.0.在CAS-ESM 2.0 中,LICOM 在海气通量交换物理过程上,提出了盐度边界条件[20].LICOM在国际上首次使用了实盐通量,认为海盐通量应是虚盐通量和实盐通量之和,且在虚盐通量中考虑了淡水通量和海表盐度的相关关系,替代了国际上常用的气候态常数来表征海表盐度.
2.2.3 陆面模式CoLM
陆面模式CoLM是北京师范大学发展的陆面模式[21].在CAS-ESM 2.0 中,CoLM 引入了多层土壤碳方案,可以更好地描述土壤碳的累积和分解效应.另外,基于风蚀物理过程,建立了新的起沙过程计算方案,更好地模拟了全球主要的沙尘分布带.
2.2.4 海冰模式CICE
海冰模式CICE是美国国家大气研究中心(NCAR)发展的海冰模式[22,23],CAS-ESM 2.0 使用的版本为CICE4.0.在CAS-ESM 2.0 中,对海冰表面反照率参数化方案及海冰模式辐射传输过程方案进行了完善,模拟结果显示海冰在密度和厚度上都更接近观测数据[24].
本文分别将CAS-ESM 部署在“元”高性能计算系统和“地球系统数值模拟装置”原型系统两个超级计算平台进行数值模拟试验.
中国科学院高性能计算系统“元”于2014年11月正式启用,该计算系统目前已有 CPU 总共5400 核,共有270 台曙光 CB60-G16 双路刀片,整体峰值性能达120.96 Tflops,每台刀片计算节点配置 2 颗 Intel E5-2680 V2 (Ivy Bridge|10C|2.8 GHz) 处理器,每颗处理器10 核,64/128 GB DDR3 ECC 1866 MHz 内存,拥有总容量 1.486 PB,可用容量为1.189 PB 的高性能工作区存储系统.其计算存储网络采用FDR InifiBand 全线速互联,每颗处理器的网络带宽为56 GB.
“地球系统数值模拟装置”是峰值计算能力位于国际前列的地球系统数值模拟的专用装置,在体系结构、计算密度、存储架构、能效比等各方面均处于目前国内领先水平.其原型系统目前拥有600 台计算节点,整体峰值浮点性能达到1.8 Pflops,每台计算节点配备2 颗我国自主研发的Hygon 处理器,每颗处理器32 核心,主频2 GHz.每台计算节点配备256 GB DDR4 2666 内存.其计算存储网络采用Intel OPA 专用计算网络方案,每颗处理器的网络带宽为100 GB.
地球系统模式CAS-ESM是进行气候数值模拟和预测的高性能计算软件系统.其模拟结果容易受到计算环境和平台的影响,因而我们分别在高性能计算系统“元”和“地球系统数值模拟装置”原型系统两个高性能计算平台进行数值模拟试验,测试其计算速度、并行效率、可扩展性等性能指标,同时相同核数的模拟试验测试5 次,取模拟时间的最小值,以消除计算环境和平台的影响.
我们首先在高性能计算系统“元”上进行了地球系统模式CAS-ESM 的耦合数值模拟试验,大气模式使用AGCM4.2,陆面模式使用CoLM,海洋模式使用LICOM,海冰模式使用CICE,其中AGCM和CoLM 的网格分辨率为1.4 度,LICOM和CICE 的网格分辨率为1 度,模拟时间为1 模式月(31 模式天),分别使用16 核、32 核、64 核、128 核、256 核、512 核、1024开展模拟试验.
然后我们将CAS-ESM 移植到“地球系统数值模拟装置”原型系统,进行跨平台的耦合数值模拟试验,其他试验设置与“元”上的模拟试验完全一致.
按照前文中所述的试验设置,我们在高性能计算系统“元”上开展了CAS-ESM 的耦合数值模拟试验.图2为运行时间随核数变化图.从图2中可以看出,随着核数的增加,CAS-ESM 耦合数值模拟试验的运行时间逐步减少,到1024 核为止具有比较好的可扩展性,需要进行更大规模的试验进一步验证.但目前受限于CAS-ESM 2.0 分模式的并行算法设计与本文试验的计算规模,还无法使用2048 核进行耦合试验.然后我们将运行时间换算为地球系统中常用的模拟速度,得到图3的结果.从图3中可以看出,随着核数的增加,CAS-ESM 耦合数值模拟速度不断加快,至1024 核能达到15.8 模式年/天,且模拟速度仍然呈加速趋势.对于本文使用的模式分辨率以及耦合数值模拟试验来说,15.8 模式年/天的模拟速度已经可以满足这类试验与研究问题的要求.
图2 在“元”上的运行时间随核数变化图
图3 CAS-ESM 在“元”上的模拟速度
为了探究CAS-ESM 在“元”上进行耦合数值模拟试验的模拟性能变化趋势,我们制作了如图4所示的加速比图.从图4中可以看出,整体来说CAS-ESM 2.0在“元”上的加速比较好,在达到512 核时,加速比有一定程度的下降,但下降趋势并不明显,在达到1024 核时,加速比又有一定成的回升,说明在512 核时加速比的下降应该是受到了高性能计算平台环境的影响,试验结果存在一定程度的误差.在达到1024 核时,加速比可以达到24.7,具有良好的加速效果.去除通信开销影响,根据16 核–32 核的加速比变化情况,理想情况的1024 核加速比约为54.4,与试验结果有一定的差距,说明通信开销随着核数的增加也在不断增长,是影响CAS-ESM 2.0 计算效率、可扩展性的因素之一.
图4 CAS-ESM 在“元”上的加速比变化图
为了进一步探究CAS-ESM 耦合数值模拟试验中,各分模式的模拟性能情况,我们统计了各分模式的运行时间.表1为各分模式的运行时间随核数变化表,表中的运行时间单位均为秒,平均占比为该分模式运行时间占总运行时间百分比的平均值.从整体来看,大气分模式AGCM 的平均运行时间所占比重较大,达到了78.21%,超过了其他分模式的运行时间之和.之后按照平均占比从大到小依次为海冰模式CICE、海洋模式LICOM、陆面模式CoLM.CPL 运行时间为耦合器运行时间,从表1中来看,除各分模式外,耦合器也是平均占比较大的模块之一.陆面模式CoLM 最多仅支持使用128 核进行模拟,因而从表中可以看出,虽然其平均占比不大,但使用1024 核时,其运行时间占总运行时间的比重可以达到6.8% 左右,远高于其平均占比2.9%,因而应该提高CoLM 模式的可扩展性.另外,海洋模式LICOM与海冰模式CICE 受限于其计算规模与并行算法,目前CAS-ESM 2.0 仅支持最多使用480 核进行模拟,因而在核数达到512 核之后,运行时间不再下降.大气分模式随着核数的增加,其运行时间不断减少,具有较好的可扩展性.
表1 在“元”上各分模式运行时间随核数变化(单位:s)
为了进一步探究AGCM 分模式运行时间占比较高的原因,我们使用1024 核耦合数值模拟试验的结果,对IAP AGCM 主要函数进行了运行时间占比情况的统计,如图5.图例中的名称均为大气分模式AGCM 调用的函数名.从图5中可以看出,IAP AGCM 主要函数中,stepon_run3 函数运行时间占比最多,达到了58.13%,其次是phys_run1 函数,达到了27.72%,phys_run2 函数也能达到5.38%.
图5 AGCM 主要函数在“元”上运行时间占比情况图
由于stepon_run3 函数在大气模式AGCM 的运行时间占比最高,其运行速度直接影响到大气模式的模拟速度,甚至影响到整个地球系统模式的模拟速度,因而有必要对stepon_run3 函数的模拟结果进行进一步的研究与分析,发现目前影响stepon_run3 函数运行速度的关键和原因.图6是在“元”上stepon_run3 函数主要调用函数的运行时间占比情况,图例中的名称为调用的函数名,other 表示除图例所示函数外的其他函数和计算过程.
图6 在“元”上stepon_run3 主要调用函数运行时间占比情况
图6中的tend_lin、tend_adv、sltb1、sltb2 函数均包含大量的聚合通信,而mass_engy_fix 函数和other部分也包含大量的点对点通信.另外sync_bndexch为聚合通信MPI_Barrier 函数的调用.因而stepon_run3函数的运行时间受通信时间、效率的影响较大.对于目前的CAS-ESM 2.0 来说,如果能对大气分模式的stepon_run3 函数进行并行算法的优化与重新设计,降低通信时间开销,应该能大大提高CAS-ESM 的计算效率与模拟速度.
为了排除高性能计算系统硬件和软件环境的影响,我们将CAS-ESM 移植到“地球系统数值模拟装置”原型系统上,进行了同样的模拟试验.图7为运行时间随核数变化图.从图7中可以看出,随着核数的增加,CASESM 耦合数值模拟试验的运行时间逐步减少;当核数达到1024 核的时候,运行时间有的减少程度并不明显,说明遇到了性能瓶颈.然后我们将运行时间换算为地球系统中常用的模拟速度,得到图8的结果.
图7 在“地球系统数值模拟装置”上的运行时间随核数变化图
图8 CAS-ESM 在“地球系统数值模拟装置”上的模拟速度
从图8中可以看出,随着核数的增加,CAS-ESM耦合数值模拟速度不断加快,当核数达到512 核时,模拟速度能达到8.2 模式年/天,当核数达到1024 核时,模拟速度能达到8.5 模式年/天,其加速效果已不明显.与“元”上的耦合数值模拟试验结果相比,CAS-ESM 2.0在“地球系统数值模拟装置”上的最大模拟速度与平均模拟速度均低于在“元”上的模拟速度.从“地球系统数值模拟装置”的硬件指标来看,尽管其整体峰值浮点性能高于“元”的整体峰值浮点性能,处理器在主频、单核浮点性能上都低于“元”的处理器,这也应该是造成两个平台模拟速度差异的原因.
为了探究CAS-ESM 在“地球系统数值模拟装置”上进行耦合数值模拟试验的模拟性能变化趋势,我们制作了如图9所示的加速比图.从图9中可以看出,在达到32 核时,加速比的增长趋势有一定程度的下降,但下降趋势并不明显;在达到128 核时,加速比的增长趋势又有一定程度的上升,说明32 核时出现的变化情况应该是由于高性能计算环境造成的误差;在达1024核之后,加速比有明显的下降,同样说明遇到了性能瓶颈.达到1024 核时的加速比约为14.0,与去除通信开销,根据16–32 核计算的理想加速比相差较大,说明在“地球系统数值模拟装置”上,通信开销的影响比在“元”上更大,应该进一步的研究与分析.
图9 CAS-ESM 在“地球系统数值模拟装置”上的加速比变化图
为了进一步探究CAS-ESM 在“地球系统数值模拟装置”上耦合数值模拟试验中,各分模式的模拟性能情况,我们统计了各分模式的运行时间.表2为各分模式的运行时间随核数变化表.从整体来看,与在“元”上的模拟试验结果一致,大气分模式AGCM 的平均运行时间所占比重较大,达到了81.59%,之后按照平均占比从大到小仍然为海冰模式CICE、海洋模式LICOM、陆面模式CoLM.耦合器CPL 的运行时间占比情况仍然达到了3.19%.从各分模式运行时间随核数的变化来看,随着核数的增加,CoLM 模式受限于其可扩展性的问题,达到128 核之后运行时间无法进一步减少.海洋模式LICOM和海冰模式CICE 受限于其计算规模,最多仅能使用480和,因而在达到512 核之前,其加速效果较好,但达到1024 核时,其运行时间已无法继续减少.耦合器和大气模式可扩展性较好,但当核数达到1024 核时,其加速效果已出现比较明显的下降,且大气模式受影响程度较大.前文已经提到,由于大气模式中存在较多的聚合通信与点对点通信,因而初步判断加速效果的降低是由于通信造成的.
表2 在“地球系统数值模拟装置”上各分模式运行时间随核数变化(单位:s)
由于大气模式运行占比最高,且其达到1024 核时加速效果下降明显,为了进一步探究AGCM 分模式运行时间占比较高和加速效果下降的原因,我们使用“地球系统数值模拟装置”上1024 核耦合数值模拟试验的结果,对IAP AGCM 主要函数进行了运行时间占比情况的统计,如图10.从图10中可以看出,与在“元”上的试验结果一致,IAP AGCM 主要函数中,仍然是stepon_run3 函数运行时间占比最多,达到了69.65%,其次仍然是phys_run1 函数,达到了15.31%,但与“元”上的模拟结果相比,phys_run1 函数的运行占比有所下降,而stepon_run3 函数的运行占比有所上升,其他函数的运行占比变化不大.因而很可能是由于stepon3 函数导致了“地球系统数值模拟装置”与“元”上的大气模式AGCM运行时间、加速比与可扩展性的差异.
图10 AGCM 主要函数在“地球系统数值模拟装置”上的运行时间占比情况图
为了探究在“地球系统数值模拟装置”上大气模式AGCM 运行时间较长、可扩展性存在问题的原因.我们使用1024 核的模拟结果对stepon_run3 函数进一步统计和分析,图11是stepon_run3 调用的其他函数运行时间占stepon_run3 运行时间的比重.与“元”相比,stepon_run3 函数的主要调用函数运行占比情况基本一致,因而应该是stepon_run3 调用的函数整体出现了计算时间的增加.影响stepon_run3 函数效率的主要因素仍然是通信,而影响通信的直接因素就是网络带宽.从两个高性能计算平台的网络带宽来看,在“元”上每颗处理器20 核,配备网络带宽为56 GB,其单核网络带宽为5.6 GB;在“地球系统数值模拟装置”上,每颗处理器32 核,配备网络带宽100 GB,其单核网络带宽为3.1 GB.因此在两个高性能计算平台上,CAS-ESM 表现出的可扩展性差异很可能是由于网络带宽不同造成的.
图11 Stepon_run3 主要调用函数运行时间占比情况图
前文使用CAS-ESM 在中科院高性能计算系统“元”和“地球系统数值模拟装置”原型系统上分别进行了数值模拟试验并对实验结果做了简要分析.通过分析发现,CoLM 模式和LICOM 模式的可扩展性,大气模式IAP AGCM 的stepon_run3 函数的通信开销,是影响CAS-ESM 在两个平台上模拟性能的主要因素.其中通过提高CoLM 模式的可扩展性,根据表1和表2中的平均时间占比,在理想情况下可以使CAS-ESM在1024 核的模拟时间减少约3.9%;提高LICOM 模式的可扩展性,在理想情况下可以使CAS-ESM 在1024核的模拟时间减少约2.3%;IAP AGCM 的stepon_run3函数模拟时间占总模拟时间的比例达到约45%,如果采用各类算法优化手段,减少stepon_run3 函数的通信开销,在理想情况下应该能起到最明显的加速效果.
根据以往高分辨率大气模式与海洋模式的优化经验,对stepon_run3 函数的通信优化,同样可以使用高纬度的纬向跳点差分计算、三维剖分并行算法等优化手段[25–28].本文使用的1.4 度分辨率的IAP AGCM 仍然使用了二维剖分并行算法,如果增加纬向(X 方向)的剖分,可以提升IAP AGCM 的并行度,减少各进程负责的数据大小[29],从而降低stepon_run3 函数的计算量与通信量.另外,由于stepon_run3 函数存在大量的垂直方向(Z 方向)通信,可以通过优化三维剖分算法,尽可能使垂直方向数据位于同一处理器上,从而大大减少通信量,提高模拟效率.
CAS-ESM 地球系统模式是一个进行地球系统模拟的复杂的高性能应用软件.为了对CAS-ESM 2.0 进行性能评估,我们分别在中科院高性能计算系统“元”和“地球系统数值模拟装置”原型系统上开展了CASESM 的耦合数值模拟试验.
结果显示,在两个高性能计算平台上,CAS-ESM表现出了不同的可扩展性.CAS-ESM 在“元”上的模拟在相同核数的绝对速度与可扩展性上,都要优于在“地球系统数值模拟装置”的模拟结果.由于高性能计算平台的硬件指标中,单核浮点性能、主频以及单核网络带宽,“元”都要优于“地球系统数值模拟装置”,因而模拟结果也符合计算环境的实际情况.在后续的CASESM 发展、地球系统研究与气候模拟工作中,应该选择单核浮点性能、主频较高,网络通信带宽更大的高性能计算平台开展耦合试验.在最新的2020 中国高性能计算机top10 榜单中,第2 名的“天河二号”超级计算机的单核浮点性能最高,达到了235 Gflops;第4 名的同方“青城之光”单核主频最高,达到了3.1 GHz;第5 名的联想深腾8800 系列的网络通信带宽最大,达到了单核1.25 GB.上述3 个平台应该是今后较为适合CASESM 进行研究与试验的高性能计算平台.
另外综合两个平台耦合数值模拟试验的结果显示,大气模式的运行时间占总运行时间的比重都是最高的,且超过了其他模式的总和.因而我们对结果进行了深入分析,发现大气模式主要函数中,stepon_run3 函数在两个平台的模拟结果中,都是运行占比最多的函数.因而我们在“地球系统数值模拟装置”上继续对stepon_run3 函数进行了深入挖掘和分析,发现其主要的性能瓶颈是由于通信造成的.因而在后续的CAS-ESM 研发工作中,需要对大气模式尤其是stepon_run3 函数中的并行通信算法开展进一步的性能优化工作.
在各分模式的可扩展性方面,目前陆面模式CoLM、海洋模式LICOM与海冰模式CICE 都存在一定的问题,为了满足耦合模式的进一步性能优化需要,提高这些分模式的可扩展性也是研究的重点之一.本文采用的大气分模式垂直方向为30 层,无法进行2048 核及以上更大规模的耦合数值模拟试验.而高分辨率的分模式,垂直方向35 层的大气模式,模拟结果还存在一定的问题.为了进行更大规模的耦合数值模拟试验,在后续工作中应该对分模式的并行算法进行优化和重新设计,使其可以使用更多的处理器,进行更大规模的性能测试与分析.