论文部分内容阅读
计算流体力学的飞速发展需要高性能的并行计算系统,然而高性能计算机的发展面临着严重的可靠性问题。为使得大型CFD计算程序在故障频发的运算平台上继续保持可用性与扩展性,我们需要为其设计高效易用的容错机制。OpenFOAM是CFD领域编程框架的典型代表,用户可以通过书写近似自然语言的方式对CFD应用进行描述,从而在OpenFOAM平台上开发出可运行的CFD并行模拟程序,实现对底层并行细节的屏蔽。从可编程的角度看,这类开发方式是目前CFD并行编程的一个很有吸引力的发展趋势。但OpenFOAM现有的自容错机制开销大,且需要用户值守。因此本文着眼于为OpenFOAM引入异步在线恢复容错思想,并为此设计配套的容错框架。本文的主要工作与创新点体现在:一、设计实现了基于OpenFOAM的容错框架(第二章)借鉴OpenFOAM的设计初衷,我们设计的容错框架仅要求领域用户修改配置文件,以类自然语言的形式选择所期望的容错机制方法,并设定相应的参数;而具体容错机制方法以及相关优化技术的实现则由计算机专家在框架中选择合理位置插装完成,减轻了领域用户的容错负担。二、为OpenFOAM引入了异步在线恢复的容错思想(第二章)本文基于协同检查点机制与用户级消息日志协议构建容错框架,为OpenFOAM引入了异步恢复的容错思想,即仅自动回滚错误进程,从而有效地节省了恢复过程中的总体CPU时间开销,同时避免产生多米诺效应与孤儿进程。三、提出了用户级消息日志协议,革新了组通信的容错方法(第三章)用户级消息日志将传统实现在MPI库级或以下的消息日志提升至用户代码层,从而给消息日志的容错方式与容错能力带来了如下三点改进:?以用户级语句代码为粒度记录归约通信消息,屏蔽了归约通信在MPI库级的实现细节。从而减小了归约通信的消息日志及恢复开销?消息日志与MPI库的实现不再耦合,保证了用户级消息日志的可移植性。?利用用户级通信语句的确定性,安全地取消了传统消息日志中的事件日志机制,进一步减小了归约通信与点对点通信的容错开销。四、NPB与MD模拟实验验证了容错思路的正确性与有效性(第五章)本文在TH1-A上运行NPB与OpenFOAM分子动力学模拟例程MDFOAM,实验结果证明:与现有传统消息日志与OpenFOAM的自容错机制相比,用户级消息日志协议与异步在线恢复容错框架有效减低了容错开销,加快了故障后的恢复速度。