2 中国科学院大学, 北京 100049;
3 北京应用物理与计算数学研究所高性能计算中心, 北京 100094
2 University of Chinese Academy of Science, Beijing 100049;
3 High Performance Computing Center, Institute of Applied Physics and Computational Mathematics, Beijing 100094
地球系统模式已成为了人们研究气候变化的有力工具(王斌等,2008)。地球系统包括了大气、海洋、陆面、海冰等分量模式,其物理过程复杂,计算量庞大,一直是高性能并行计算技术研究和应用的主要领域(王鹏飞等,2006;王斌,2009)。大气模式作为地球系统模式中的主要分量模式,决定着地球系统模式的运行效率。随着模式分辨率的提高,考虑的物理过程越来越复杂,大气模式的计算量将呈几何级数的增长,程序复杂度也越来越高。因此发展高效的高性能大气环流模式,是气候研究中的重要科学前沿。
近10 年来计算机峰值性能提高了1000 多倍,已经达到每秒亿亿次的处理速度。随着计算机的飞速发展,在高性能计算机的支持下,大气模式向超高分辨率以及非静力平衡方向发展。例如日本的 NICAM(Nonhydrostatic ICosahedral Atmospheric Model)非静力平衡模式,水平分辨率达14 km,能够采用不带有积云对流方案的云微物理过程进行云的显示计算,从而对大气现象中的多尺度过程,例如:台风、MJO(Madden-Julian Oscillation)等具有较好的模拟能力(Kodam et al.,2015)。美国 CAM 大气环流模式水平分辨率达0.25°,其计算规模达上万处理器核(Bacmeister et al.,2014)。
国内的许多模式研究人员,对数值模式的并行计算进行了研究,取得了相关的进展。毕训强和曾庆存(1997)首次进行了气候数值模式并行计算工作。张昕等(2001)研究了OpenMP(Open Multi- Processing)在中尺度模式和气象预报模式中的应用。王鹏飞等(2006)从一般计算机并行计算理论出发,结合大气科学模式的特点,总结出一套对数值模式适用的并行化编程方案,而且提出了并行计算过程中应该注意的一些问题。
然而,计算机系统的复杂性和复杂的体系结构给高性能并行编程带来了极大的挑战。一方面,计算机体系结构越来越复杂,具有多层的体系架构,同时机器从同构系统往异构系统发展。另一方面,数值模式的计算过程也越来越复杂。这为开发能高效使用现代计算机体系结构的高性能并行模式带来了很大困难。
传统并行编程的方法,采用静态的计算区域分割方式,通过MPI(Message Passing Interface)进行数据通信,开发并行模拟程序。为了提高程序的效率,用户必须仔细的处理每一个计算区域的分割。另一方面基于现代计算机体系结构,涌现了针对多核以及CPU 加速等新技术的编程模式,这使得不熟悉计算机体系细节的用户,很难设计出高效的并行模式。
基于上述并行模式开发的困难,本文提出了一种全新的并行模式编程方式,即在高性能计算机和大气模式之间建立一个并行应用框架的中间软件层(图 1)。
![]() |
图 1 并行应用软件框架示意图 Fig. 1 A schematic diagram of the parallel application software framework |
并行应用框架提供结构网格的数据结构,集成高效的并行算法和性能优化方法,采用可持续发展和符合现代软件工程的软件实现方法,提供标准接口函数。并行应用框架自身能够针对现代计算机体系结构自动实现多维剖分,使用新加速部件等功能,从而使得模式开发者只需关注模式自身算法,而不用专门研究高性能计算机的结构细节,通过调用并行框架的标准接口函数,就能开发充分利用现代计算机体系结构的高性能模式。
本文正是基于北京应用物理与计算数学研究所针对地球系统模式开发的领域内结构网格自适应加密基础软件框架J-Earth和格点大气环流模式 GAMIL,发展一个高效并行的大气环流模式 H-GAMIL。
2 J-Earth 软件框架及大气环流模式 GAMIL 简介J-Earth 软件应用框架是北京应用物理与计算数学研究所基于已成功应用于流体力学、分子动力学、辐射流体力学、位错动力学等诸多领域的 JASMIN(Pei,2007;程汤培等,2013)并行自适应结构网格应用支撑软件框架,针对气象科学中的计算特点发展出的领域编程框架。它能够屏蔽大规模并行和自适应计算的实现细节,支持新计算方法和高性能算法的研究,支撑数千上万处理核高效并行应用程序的研制如图 2 所示。J-Earth框架的核心数据结构由“网格片层次结构-网格层-网格片-数据片-Box(影像区)-网格单元”组成。网格片层次结构用于管理单块自适应结构网格,它由多个互相嵌套的、具有不同尺度的网格层构成。每个网格层的索引范围又被进一步拆分成多个互不重叠的box,而每个box 索引着一个逻辑上为矩形的计算子区域。这些子区域上的网格单元及其上的物理量值的集合称为网格片。在网格片上,物理量通过数据片定义 而相邻网格片的物理量值、粗细网格层连接条件以及物理边界条件通过影像区定义。这样的数据结构能适应微处理器的多级存储特征,通过调整“Patch(网格片)”的大小可提高cache(高速缓冲存储器)命中率,且能够采用高效的并行实现策略(Mo et al.,2010)。目前基于J-Earth 领域编程框的高性能海洋模式和海冰模式重构也正在开展。
![]() |
图 2 J-Earth 并行框架中的(a)网格层和(b)网格片 Fig. 2 (a)Patches and(b)levels in the J-Earth parallel software framework |
GAMIL 是中国科学院大气物理研究所大气科学和地球流体力学国家重点实验室(LASG)发展的一个大气环流格点模式,其水平分辨率为2.8°(纬度)×2.8°(经度),垂直方向26 层。模式动力框架采用半隐式有限差分方案,保证了总有效能量和总质量守恒,并进行了标准层结扣除(Wang et al.,2004)。GAMIL 物理过程大多采用CAM2(NCAR Community Atmospheric Model,Version 2)中的物理方案,其中包括耦合了NCAR 的CLM(Community Land Model)陆面模型。GAMIL 的积云对流参数化方案采用了改进后的Zhang 方案,云微物理过程采用了MG 方案(Li et al.,2013)。目前,GAMIL 模式已经广泛应用于气候变率研究中,参加了“二十世纪气候研究计划”(CLIVAR C20C)、IPCC AR4、AR5等模拟试验,取得了不错的效果,在某些方面模拟性能达到了国际一流水平(Li et al.,2007a,2007b;Kucharski et al.,2009; Scaife et al.,2009;Li and Wang,2010;Dong et al.,2012;Li et al.,2012)。
3 大气模式GAMIL 的重构和新功能现代对于大规模软件工程,多采用面向对象的编程方式进行程序设计。面向对象程序设计中通过对象、类、数据抽象、继承、动态绑定、数据封装、多态性、消息传递等概念的实现,将接口与实现进行分离,使得程序能够标准化、模块化,并利于多人的协同开发,是大型软件构建的有效方法。
基于J-Earth 框架,我们便于采用面向对象的方式对大气模式进行重构,从而使大气模式具有模块化、标准化的功能。首先我们分析原有模式的特点和结构。
如图 3 所示,大气模式主要分为动力框架和物理参数化过程两大部分。我们采用J-Earh 框架支持的C++编程语言,分别把动力框架和物理参数化过程作为面向对象进行程序实现,使它们分别成为标准化的模块,同时对内部的计算核心过程仍然保留Fortran 语言进行核心计算,以利于程序的高效性和继承性,最终采用C++和Fortran 语言混编的形式进行重构。
对模式原有的计算网格和数据结构,通过 J-Earth 框架进行程序重构,J-Earth 框架对原GAMIL模式中的变量及计算网格进行统一管理,避免了内存泄漏等软件问题。GAMIL 内部的不同计算功能模块,按面向对象的方式,进行封装,构建成为框架所支持的积分构件,再使用J-Earth 框架进行整合。最终使GAMIL 模式重构到J-Earth 框架上发展出高效并行大气环流模式H-GAMIL。
![]() |
图 3 GAMIL 模式主要结构 Fig. 3 Main structure of GAMIL model |
重构到J-Earth 框架后,使H-GAMIL 具有了如下新功能:
(1) H-GAMIL 具有标准化、层次化的模块结构
H-GAMIL 分别把动力框架和物理过程参数化设计成了两个对象化的模块化结构,使程序具有高度灵活性,便于创建和更换动力框架和物理参数化过程。内部的子过程也进行了数据的标准化封装,使得模式内部子过程能够容易的进行重用或更换(如图 4 所示)。
![]() |
图 4 H-GAMIL 的层次化模块结构 Fig. 4 Hierarchical module structure of H-GAMIL model |
(2) 实现H-GAMIL 的自动二维剖分
原版本Fortran 语言的GAMIL 模式通过“串行模式并行化”的传统技术途径来实现并行计算,只具有沿经圈方向一维剖分的功能。因此,它的并行效率较差且扩展性不强。通过重构到 J-Earth 框架上,模式具有Patch 数据结构。自动实现了二维剖分,同时Patch 大小可以根据计算机系统cache 大小调整,利于命中cache,从而使并行效率得 到很大提高,具有了较强的可扩展性(如图 5 所示)。
![]() |
图 5 H-GAMIL 网格片patch 示意图 Fig. 5 A schematic diagram of patch in H-GAMIL model |
(3) Patch 数据结构下的MPI和openMP 混合并行功能
在J-Earth 框架中,全球大气模式能够在集群计算机中采用MPI和OpenMP混合并行计算的方式进行大规模并行计算。计算节点间采用MPI 并行方式进行消息传递的并行计算,同一计算节点间的多个 patch 则采用OpenMP 多线程的并行方式进行并行计算,这样使得MPI和OpenMP 混合编程的技术充分发挥它们的优点,以适应现代分布式大型计算机体系结构。
(4) 实现了GAMIL 的并行输出功能
随着模式分辨率的提高,全球模式输出的数据规越来越大,IO 成为制约计算速度的一个重要因素。传统的并行模式,采用串行的输出方式,需要全局通讯把全局变量收集到单一进程上来,在大规模并行中计算中非常耗时。同时输出进程占用很大的内存空间,模式分辨率提高以后,输出进程的全局变量甚至超出了物理内存空间,导致模式不能正常运行。通过重构到J-Earth 框架上,模式自动实现了并行输出,并可以根据研究需求,指定输出进程数。
4 大气模式H-GAMIL并行效率及可扩展性测试衡量并行计算省时效果的指标主要有两个,一个是并行计算加速比,一个是并行效率,其定义如下:
并行计算加速比 S:S = T1 / Tn,其中,T1 为最小处理器规模完成一个计算任务所用的时间,Tn 为用n 个最小处理器规模CPU 核并行完成一个相同的计算任务所用时间。该指标表示采用多个CPU核后计算加速的情况。在并行加速比的基础上得到并行效率的定义。
并行效率 E:E =(S / n)×100%。为了测试重构后的H-GAMIL 模式的并行效率,并与原模式进行比较,我们在曙光5000 大型并行计算机器上进行了并行效率和可扩展性测试。原2.8°(纬度)×2.8°(经度)GAMIL 模式因为数据结构复杂,算法具有数据依赖性,仅采用经圈方向的MPI 一维剖分的并行方式进行并行设计,因此受到了最多30 个进程进行计算的限制。在J-Earth 框架上重构后的 H-GAMIL 模式能够自动进行二维的双方向剖分,消除了模式对处理器的扩展限制,使得在使用上百个处理器后仍然具有40%以上的并行效率(如图 6所示)。
![]() |
图 6 GAMIL 与H-GAMIL 的并行效率测试 Fig. 6 The parallel test between GAMIL and H-GAMIL model |
为检验H-GAMIL 并行效率和扩展性,我们扩展H-GAMIL 水平分辨为1°(纬度)×1°(经度),时间步长为300 s。在某国产高性能并行计算机上对模式进行了大规模并行性能测试,其结果如表 1和图 7 所示。
![]() |
表 1 H-GAMIL 并行加速比和并行效率 Table 1 The speed up and parallel performance of H-GAMIL |
![]() |
图 7 1°(纬度)×1°(经度)H-GAMIL 并行效率及负载平衡效率测试 Fig. 7 The parallel efficiency and load balance test of 1°×1° H-GAMIL model |
图 7 给出了大气环流模式的并行效率和负载平衡效率。从中可以看出,H-GAMIL 大气模式在使用上千处理器核时,保证了并行效率在40%以上,同时所有测试中均保证了77%以上的负载平衡效率,表明了程序能够较好的进行负载平衡。
为了验证重构后的正确性,我们使用2.8°(纬度)×2.8°(经度)H-GAMIL 进行了10 年的模拟积分。对模式年平均总降水量和年平均850 hPa 温度场与原GAMIL 模式进行了比较。如图 8、9 所示重构后H-GAMIL 模拟结果与原版降水量均方根误差为0.045 mm/d,温度场均方根误差为0.009 K,且空间分布偏差不大,完全达到了实用的程度。我们也检验了模式输出的总有效能量数值,其结果能够保持15 位精度的有效数字,表明重构后的 H-GAMIL 有效保持了模式的守恒性;同时对 H-GAMIL 模式的重启动功能进行了检验,结果表明H-GAMIL 能够保证重启动后模式运行结果完全一致。
![]() |
图 8 (a)H-GAMIL 全球年平均降水的模拟结果,(b)原GAMIL 模式全球年平均降水的模拟结果,(c)H-GAMIL 与GAMIL 模拟的差值 Fig. 8 (a)Annual mean rainfall from H-GAMIL simulation.(b)The same as(a)but from GAMIL.(b)Differences between H-GAMIL and GAMIL simulations |
![]() |
图 9 (a)H-GAMIL 全球年平均850 hPa 温度场的模拟结果,(b)原 GAMIL 模式全球年平均850 hPa 的模拟结果,(c)H-GAMIL 与GAMIL模拟的差值 Fig. 9 (a)Annual mean temperature from H-GAMIL simulation.(b)The same as(a)but from GAMIL.(c)Differences between H-GAMIL and GAMIL simulations |
试验中2.8°(纬度)×2.8°(经度)H-GAMIL并行版本,使用128 个CPU 处理器核能在16 h 内完成30 个物理年的模拟计算过程,可以满足气候研究的计算需求。
5 结论本文提出了对大气环流模式的一种全新的并行模式设计策略,即使用一个领域编程框架J-Earth对大气环流模式GAMIL 进行重构,发展了一个高效并行的大气环流模式H-GAMIL。H-GAMIL 具有标准化、模块化的特点,并具有了二维剖分,并行输出的新功能。H-GAMIL 具有Patch 的基本数据结构,利于在高性能计算中命中cache,同时便于实现MPI和OpenMP 混合编程,以适应现代大型计算机体系结构。我们对H-GAMIL 模式进行了大规模并行计算效率和可扩展性测试,其结果表明 H-GAMIL 具有较高的并行效率和可扩展性,水平1°(纬度)×1°(经度)分辨率模式使用上千处理器核能达到40%以上并行效率并保持负载平衡在70%以上。重构后的模式与原模式模拟性能相当,从而验证了使用J-Earth 并行框架构建高分辨率大气模式是一种可行的并行设计新方法。同时,未来可以基于J-Earth 并行应用框架,进一步开发大气模式的动态负载平衡功能和自适应加密功能。
[] | Bacmeister J T, Wehner M F, Neale R B, et al. 2014. Exploratory high-resolution climate simulations using the community atmosphere model (CAM)[J]. J. Climate, 27(9): 3073–3099. DOI:10.1175/JCLI-D-13-00387.1 |
[] | 毕训强, 曾庆存. 1997. 气候模式并行计算[J]. 气候与环境研究, 2(2): 100–105. Bi Xunqiang, Zeng Qingcun. 1997. Parallel computing by using climate models[J]. Climatic and Environmental Research (in Chinese), 2(2): 100–105. DOI:10.3878/j.issn.1006-9585.1997.02.01 |
[] | 程汤培, 莫则尧, 邵景力. 2013. 基于JASMIN的地下水流大规模并行数值模拟[J]. 计算物理, 30(3): 317–325. Cheng Tangpei, Mo Zeyao, Shao Jingli. 2013. JASMIN-based massive parallel computing of large scale groundwater flow[J]. Chinese Journal of Computational Physics (in Chinese), 30(3): 317–325. DOI:10.3969/j.issn.1001-246X.2013.03.001 |
[] | Dong L, Li L J, Huang W Y, et al. 2012. Preliminary evaluation of cloud fraction simulations by GAMIL2 using COSP[J]. Atmospheric and Oceanic Science Letters, 5(3): 258–263. DOI:10.1080/16742834.2012.11447002 |
[] | Kodam C, Yamada Y, Noda A T, et al. 2015. A 20-year climatology of a NICAM AMIP-type simulation[J]. J. Meteor. Soc. Japan, 93(4): 393–424. DOI:10.2151/jmsj.2015-024 |
[] | Kucharski F, Scaife A A, Yoo J H, et al. 2009. The CLIVAR C20C project:Skill of simulating Indian monsoon rainfall on interannual to decadal timescales.Does GHG forcing play a role?[J]. Climate Dyn., 33(5): 615–627. DOI:10.1007/s00382-008-0462-y |
[] | Li L J, Wang B, Zhou T J. 2007a. Impacts of external forcing on the 20th century global warming[J]. Chinese Science Bulletin, 52(22): 3148–3154. DOI:10.1007/s11434-007-0463-y |
[] | Li L J, Wang B, Wang Y Q, et al. 2007b. Improvements in climate simulation with modifications to the Tiedtke convective parameterization in the grid-point atmospheric model of IAP LASG (GAMIL)[J]. Advances in Atmospheric Sciences, 24(2): 323–335. DOI:10.1007/s00376-007-0323-3 |
[] | Li L J, Wang B. 2010. Influences of two convective schemes on the radiative energy budget in GAMIL1.0[J]. Acta Meteorologica Sinica, 24(3): 318–327. |
[] | Li L J, Xie X, Wang B, et al. 2012. Evaluating the performances of GAMIL1.0 and GAMIL2.0 during TWP-ICE with CAPT[J]. Atmospheric and Oceanic Science Letters, 5(1): 38–42. DOI:10.1080/16742834.2012.11446963 |
[] | Li L J, Wang B, Dong L, et al. 2013. Evaluation of grid-point atmospheric model of IAP LASG version 2(GAMIL2)[J]. Advances in Atmospheric Sciences, 30(3): 855–867. DOI:10.1007/s00376-013-2157-5 |
[] | Mo Z Y, Zhang A Q, Cao X L, et al. 2010. Jasmin:A parallel software infrastructure for scientific computing[J]. Frontiers of Computer Science in China, 4(4): 480–488. DOI:10.1007/s11704-010-0120-5 |
[] | Pei W B. 2007. The construction of simulation algorithms for Laser Fusion[J]. Communication in Computational Physics, 2(2): 255–270. |
[] | Scaife A A, Kucharski F, Folland C K, et al. 2009. The CLIVAR C20C project:Selected twentieth century climate events[J]. Climate Dyn., 33(5): 603–614. DOI:10.1007/s00382-008-0451-1 |
[] | 王斌. 2009. 一种典型的高性能计算:地球系统模拟[J]. 物理, 38(8): 569–574. Wang Bin. 2009. A typical type of high-performance computation:Earth system modeling[J]. Physics (in Chinese), 38(8): 569–574. DOI:10.3321/j.issn:0379-4148.2009.08.006 |
[] | Wang B, Wan H, Ji Z Z, et al. 2004. Design of a new dynamical core for global atmospheric models based on some efficient numerical methods[J]. Science in China Series A:Mathematics, 47(S1): 4–21. DOI:10.1360/04za0001 |
[] | 王斌, 周天军, 俞永强, 等. 2008. 地球系统模式发展展望[J]. 气象学报, 66(6): 857–869. Wang Bin, Zhou Tianjun, Yu Yongqiang, et al. 2008. A perspective on earth system model development[J]. Acta Meteorologica Sinica (in Chinese), 66(6): 857–869. DOI:10.3321/j.issn:0577-6619.2008.06.002 |
[] | 王鹏飞, 马晓光, 李薇, 等. 2006. 气候数值模式在计算网格环境下的应用[J]. 气候与环境研究, 11(6): 745–753. Wang Pengfei, Ma Xiaoguang, Li Wei, et al. 2006. Climatic numerical model applied in computing grid environments[J]. Climatic and Environmental Research (in Chinese), 11(6): 745–753. DOI:10.3969/j.issn.1006-9585.2006.06.009 |
[] | 张昕, 季仲贞, 王斌. 2001. OpenMP在MM5中尺度模式中的应用试验[J]. 气候与环境研究, 6(1): 84–90. Zhang Xin, Ji Zhongzhen, Wang Bin. 2001. Some study on application of OpenMP in mesoscale meteorological Model-MM5[J]. Climatic and Environmental Research (in Chinese), 6(1): 84–90. DOI:10.3969/j.issn.1006-9585.2001.01.010 |