论文部分内容阅读
器件工艺的发展和并行规模的不断扩大,使得高性能计算机性能不断得到提升,但也带来编程墙和可靠性墙的严峻挑战,严重制约了高性能计算机应用的发展。对于编程墙问题,研究者们提出了面向领域的并行应用框架,实现了各学科专家在并行领域应用开发过程中的解耦,大幅度提高了并行领域应用的开发效率。而可靠性问题也一直是并行应用研究的热点问题,已有众多相关容错理论研究,但都不够透彻。传统基于硬件的容错方法面临着容错代价大、缺乏灵活性等诸多问题;而在实现层面上,系统级容错虽然面向用户透明,但存在着开销过大的问题;应用级容错虽然一定程度上缓解了容错开销问题,却使得用户负担加重。本文首次对面向CFD(Computational Fluid Dynamics)并行应用框架的容错方法展开研究。应用框架下容错能够在实现向上层用户透明的同时,保持应用级容错方法的低开销优点。并且在CFD并行应用框架内,能够将容错设计和实现与CFD并行应用特点进行有效结合,获得更为高效的容错优化方法。因此,研究CFD并行应用框架下的容错技术对促进CFD并行应用发展有着重要意义。本文在现有CFD并行应用软件框架的基础上,研究了面向CFD并行应用软件框架的容错技术。我们设计和构建了框架内的软件容错架构,针对错误检测和错误恢复这两个容错关键问题提出了一系列容错方法和优化技术。本文的主要工作和创新点体现在:1.以状态变迁图STG为基础,建立并行程序和CFD并行应用中的错误传播模型(第二章)硬件故障在并行程序中的传播行为是研究面向硬件故障的软件容错技术基础,而对并行程序的抽象建模又是故障传播行为研究的基础。本文首先提出了基于程序状态跟踪的状态变迁图理论,在状态变迁图理论中,对冲突、因果、并发关系进行了抽象,同时也支持系统间的交互抽象和行为抽象。基于状态变迁图STG理论,我们对故障在并行程序中的传播行为进行了分析,包括原生错误、数据流生错误和控制流生错误以及通信引起的传播错误等,并分别给出了错误传播方程及相关求解算法。同时,本文还从CFD并行应用的连续模型和离散模型出发,对他们的核心计算过程和特征进行了分析,得到连续CFD模型下以差分操作为核心的计算模式和离散CFD模型下以模板为核心的计算模式,并将两类CFD模拟计算核心特征统一抽象为以计算模板为核心的计算模式。以模板计算为基础,我们给出了错误在计算模板中的传播方程,以及CFD模拟过程中应用级错误传播相关求解算法。2.基于现有CFD并行应用软件框架提出了面向CFD并行应用框架的容错架构(第三章)基于并行程序错误传播模型和CFD应用级错误传播模型,在现有CFD并行应用软件框架的基础上,设计了面向CFD并行应用框架的容错架构。结合CFD应用中的天然容错基础和相关容错需求,我们设计了CFD并行应用框架下的同步回滚方法和异步回滚方法。在同步回滚方法中,重点利用CFD原有的周期性快照输出以最小代价实现检查点备份操作。而在异步回滚方法中,采用用户级sender-based消息日志技术,解决了失效进程的通信重演问题。3.结合离散CFD应用特征提出了面向模板计算的软错误检测方法——GSDMR(第四章)本文基于应用级错误传播模型,结合离散模型的CFD并行应用特征,提出了基于网格采样的双模冗余检错方法,能够大幅度减少模板计算中对软错误的检错开销。我们基于软错误在网格上的传播规律,并使用数学建模量化分析了如何获得GS-DMR方法中的最优检错周期、最优检查点周期和最优网格采样尺寸等,以及获取这些最优参数的启发式算法。针对GS-DMR方法中错误传播延迟带来的检错盲区问题,我们提出了包括冒险检查点、多重检查点和混合检错在内的多重解决策略,并根据实用性需求选择了混合检错方案。4.提出了检查点异步流水I/O优化方法——AP-IO(第五章)本文针对checkpoint开销过大的问题,提出异步流水检查点I/O优化方法——AP-IO,将形成检查点备份数据的多个数据场采用流水方式异步写出,而不是在时间步末尾集中输出,以获取更多的可用隐藏时间。同时针对某些CFD应用异步流水I/O隐藏时间仍然不够的情况,在异步流水I/O思想的基础上,我们进一步提出了应用级场数据计算调度的思想,通过合理调度CFD场数据的计算顺序,为整体快照输出获得更多可用隐藏时间。