论文部分内容阅读
随着系统规模的不断扩大和COTS器件制造工艺的不断发展,高性能计算机面临着严峻的可靠性挑战。应用级checkpointing技术是应对这一挑战的关键技术。但是,当前应用级checkpointing技术面临着性能优势无法充分发挥以及不方便使用的问题。本文致力于高效易用的应用级checkpointing技术的研究与实现,着重研究了应用级checkpoint的优化保存问题,应用级checkpoint全局状态一致性问题,多checkpoint的总开销最优化问题和应用级checkpointing技术易用性问题。本文的主要贡献可概括为以下几点:1、针对现有活跃变量分析方法不能对MPI并行程序进行准确分析的问题,我们定义了MPI并行程序进程间和进程内的定值-引用关系,并提出了MPI并行程序活跃变量分析方法——LAMP。LAMP克服了传统活跃变量分析方法既不能区分同一个变量在各进程上不同的活跃性、也不能分析跨进程定值-引用关系的缺点,它是优化应用级checkpoint数据量从而减小checkpoint开销的基础技术。2、深入研究了应用级checkpoint的优化保存问题。我们首先分析了MPI并行程序计算状态的组成,确定了对其中占主要部分的各进程计算状态进行优化的思想;然后提出了一种基于LAMP的应用级checkpointing技术。实验结果表明该技术能够有效减小checkpoint数据量和减小checkpoint开销。3、深入研究了全局checkpoint数据的一致性问题。我们提出了一个基于编译分析保持应用级checkpoint数据一致性的新方法。该方法不需要记录checkpointing期间的early或late消息,而是通过静态分析找出MPI程序中安全的checkpointing区域的方法,在安全的checkpointing区内保存应用级checkpoint时不需要记录任何消息。实验证明该方法简单有效。4、深入研究了多个checkpoint的总开销最小化问题,提出了一种优化设置多个checkpoint位置的方法。由于应用级checkpointing开销主要来自写checkpoint文件的时间,我们首先将求解最小的checkpoint总开销近似为求解最小的checkpoint总数据量。然后将多checkpoint的优化设置问题抽象为一个类似于0-1整数规划的数学问题。最后给出了两种求解算法。5、针对应用级checkpointing的易用性问题,我们设计并实现了一个源到源的预编译器ALEC,它可以非常方便地将普通的Fortran77/MPI程序转换成具有高效的应用级checkpointing功能的容错程序。