当某个模拟时间步结束时,将ΔT=ts-tb与最优检查点时间间隔TC进行比较:如果二者刚好相等,则将当前的场数据作为检查点保存,并将ts的值赋给tb;如果ΔT大于TC,即表明超过了最优时间间隔还没有保存过检查点,则将当前的场数据作为检查点保存,并将ts的值赋给tb;如果ΔTTIdealC,则说明当下一时间步模拟结束时,本次检查点备份周期很有可能已经超过了最优检查点备份间隔,因此直接将当前的场数据作为检查点保存;反之,则说明下一个模拟时间步结束时得到的检查点时间间隔很可能比本次更接近理想值,因此不进行场数据的输出,而直接进入下一个模拟时间步的模拟计算。
3基于OpenFOAM的实现
将第2章所设计得到的面向CFD应用开发框架的容错周期优化方法在OpenFOAM中实现。OpenFOAM是一款基于C+语言开发的,面向CFD应用的开源并行开发框架,其框架结构如图4所示。框架主要由前处理、后处理、平台接口、问题求解和基础支撑五部分组成:前处理主要负责对待模拟问题的几何建模、网格生成与为了并行计算的网格区域划分;后处理将模拟计算的结果进行格式转换后,组织成供第三方工具显示的数据;平台接口一方面通过配置文件的形式为领域用户提供已有模型的编程接口,另一方面也支持新的应用模型开发;问题求解对描述完全的连续问题进行数值离散和计算;基础支撑则提供以MPI为主的并行库和包括I/O管理在内的资源管理。
OpenFOAM受到学术界和产业界广泛认可的一大原因就是其层次分明的框架结构,基于这一优点,在OpenFOAM中实现容错周期优化功能时仅需要修改平台结构中的领域用户接口模块和基础支撑中的I/O管理模块:
1)在领域用户接口模块中,为用户通过文件配置CFD应用相关属性时增加了系统平均无故障时间λ和场数据输出时间TS两个条目。其中,系统平均无故障时间是并行计算系统的固有属性,可以根据机器的历史维护日志得到;场数据的输出时间则和待模拟问题的场数据大小以及机器的I/O性能有关,这既可以通过计算得到,也可以通过Profiling方法得到。
2)在I/O管理模块,首先基于用户配置提供的系统平均无故障时间和场数据输出时间计算得到本CFD应用问题在系统上模拟的最优检查点间隔TIdealC,然后在场数据输出控制逻辑中添加如图3所示的算法功能。
4实验与分析
4.1平台与测试用例
为了验证本文所提出的面向CFD应用开发框架容错周期优化方法的正确性与有效性,使用第3章介绍的方法在OpenFOAM2.1.1版本上实现了第2章所设计的容错周期优化方法,并将其安装在天河-1A[13]的子系统上。该子系统拥有20个计算节点,每个节点包含2个2.93GHz的6核IntelXeonX5670处理器和24GB的内存,系统运行在Redhat5.5操作系统上。需要指出的是,虽然全子系统一共拥有240个处理器核,但是在使用中仅适用了其中200个处理器核,即所有应用执行的并行度均为200。测试用例方面,选择了OpenFOAM自带的Cavity、PitzDaily和Dambreak等3个三维测试用例,它们的问题规模和迭代时间步数的信息如表2所示。
4.2实验方法
由于实验平台仅由20个计算节点组成,所以其真实的平均无故障时间λ较大,因此在实验过程中假设系统的平均无故障时间λ为25,50和100s,并通过负指数分布的瞬时故障概率密度函数ρ(t)=e-t/λ模拟随机产生下一个故障到达的时间。需要说明的是,由于故障是随机注入的,因此后文所有容错效果的测试均采用了多次实验取平均的方法。
在具体实验过程中,首先在不注入故障的情况下对各个测试用例的正常执行性能进行测试,获得各自的正常执行时间T,检查点备份时间即场数据输出时间TS。其次,以Cavity为分析案例对其容错周期优化情况展开详细分析:获得其模拟过程中各个模拟时间步的真实执行时间;测试不同λ下,以不同模拟时间步作为容错周期时的容错效果;计算不同λ下基于理想最优检查点备份周期TIdealC,并使用图3所示优化方法进行检查点备份的容错效果。最后,我们分别选取合适的λ,测试本文所提出的容错周期优化方法对另外两个测试用例即PitzDaily和Dambreak的效果。
4.3结果与分析
表2中给出了三个测试用例各自的无容错正常执行时间T和检查点备份时间即场数据输出时间TS。进一步,测试用例Cavity在模拟过程中各个模拟时间步的真实执行时间如图5所示。不难发现,不同模拟时间步的执行时间是不尽相同的,初始时间步的执行时间较长的原因在于在模拟初期的流场变化较为剧烈。
针对测试用例Cavity,变换系统平均无故障时间λ为25s、50s和100s,并通过式(5)求解得到各自所对应的理想最优检查点备份周期TIdealC分别为5.085s、7.35s和10.56s。在三种λ下,使用不同容错周期的容错效果如图6所示,图中方点对应使用不同时间步为检查点间隔的程序总执行时间;而实线则表示基于各自TIdealC,并使用图3所示方法进行容错周期优化的程序总执行时间。不难发现,对于Cavity用例,在不同系统平均无故障时间下,使用基于固定时间步的检查点周期选择方法的最优周期是变化的;而本文所提出的容错周期优化方法总是可以得到较优的检查点备份间隔。
类似地,测试PitzDaily和Dambreak用例分别在λ=100s和λ=25s情况下,使用不同容错周期方法的总执行时间。从图7中,不难发现,本文所提出的容错周期优化方法可以准确获得较优的检查点备份间隔,从而有效降低CFD应用的容错开销。
5结语
本文针对CFD应用在并行计算系统上的可靠性问题,分析了现有基于简单场数据输出以实现检查点容错方法在容错周期设置上的不足,通过理想连续与实际离散建模方法,设计得到了面向CFD应用开发框架的容错周期优化方法,并将其在OpenFOAM框架中实现。实验结果表明本文的容错周期优化方法可以有效降低CFD应用的总容错开销。
参考文献:
[1]YANC,YUJ,XUJ,etal.Ontheachievementsandprospectsforthemethodsofcomputationalfluiddynamics[J].AdvancesinMechanics,2011,41(5):562-589.(阎超,于剑,徐晶磊,等.CFD模拟方法的发展成就与展望[J].力学进展,2011,41(5):562-589.)
[2]LUCD.Scalabledisklesscheckpointingforlargeparallelsystems[D].Urbana-Champaign:UniversityofIllinoisatUrbana-Champaign,2005.
[3]Top500[OL].[2013-10-15].http://www.top500.org.
[4]COCHRANCA.AnalyzingFLUENTCFDmodelsanddatatodevelopfundamentalcodestoassesstheeffectsofgraphiteoxidationinanHTGRairingressaccident[D].Cambridge:MassachusettsInstituteofTechnology,2010.
[5]FAVEROJL,SECCHIAR,CARDOZONSM,etal.ViscoelasticfluidanalysisininternalandinfreesurfaceflowsusingthesoftwareOpenFOAM[J].Computers&ChemicalEngineering,2010,34(12):1984-1993.
[6]IFEANYIP.EGWUTUOHA,DAVIDL,etal.Asurveyoffaulttolerancemechanismsandcheckpoint/restartimplementationsforhighperformancecomputingsystems[J].JournalofSupercomputing,2013,65(3):1-25.
[7]YANGXJ,WANGZY,XUEJL,etal.Thereliabilitywallforexascalesupercomputing[J].IEEETransactionsonComputers,2012,61(6):767-779
[8]YUWK,HUANGW,PANDADK.Application-transparentcheckpoint/restartforMPIprogramsoverInfiniBand[C]//Proceedingsofthe2006InternationalConferenceonParallelProcessing.Washington,DC:IEEEComputerSociety,2006:471-478.
[9]DALYJT.Ahigherorderestimateoftheoptimumcheckpointintervalforrestartdumps[J].FutureGenerationComputerSystems,2006,22(3):303-312.
[10]YANGX,WANGP,FUH,etal.Compiler-assistedapplication-levelcheckpointingforMPIprograms[C]//Proceedingsofthe28thInternationalConferenceonDistributedComputingSystems.Piscataway:IEEE,2008:251-259.
[11]LIK,NAUGHTONJ,PLANKJ.Low-latency,concurrentcheckpointingforparallelprograms[J].IEEETransactionsonParallelandDistributedSystems,1994,5(8):874-879.
[12]AMINAG,THOMASR,ELISABETHB,etal.Uncoordinatedcheckpointingwithoutdominoeffectforsend-deterministicMPIapplications[C]//Proceedingsofthe25thIEEEInternationalParallelandDistributedProcessingSymposium.Piscataway:IEEE,2011:989-1000.
[13]XIEM,LUY,LIUL,etal.ImplementationandevaluationofnetworkinterfaceandmessagepassingservicesforTianHe-1Asupercomputer[C]//Proceedingsofthe19thAnnualSymposiumonHigh-PerformanceInterconnects.Piscataway:IEEE,2011:78-86.