论文部分内容阅读
随着HPC系统的迅猛发展,其系统的可靠性问题越来越引起人们的关注,容错技术作为提高系统可靠性的一种重要的技术手段,对其开展研究具有十分重要的意义。MPI作为HPC领域使用最为广泛的并行编程环境,在MPI系统中实现对容错的支持是容错技术研究的一个重要方向。本文对现有的容错技术进行了深入的研究、分析和对比后,选择检查点技术作为本课题系统的容错手段。设计实现了独立于MPI标准实现库、具有可移植性和可扩展性的MPI容错系统——VFTS(Variable-based Fault Tolerant MPI System)。在设计和实现VFTS系统中,主要工作如下:建立了检查点容错的程序性能分析模型以指导用户为程序添加容错功能。在系统故障服从泊松分布时,给出了程序如何添加容错功能以获取程序最小时间开销。此外根据系统特点,总结了容错程序性能优化方法,提出了程序添加容错功能时获取较小时间、空间和通信开销所需要遵循的约束原则。提出了通信器动态重构方法,针对现有MPI标准中的静态进程模型对于容错的限制,通信器动态重构可以使MPI程序能够实现对失效进程的隔离、排除、新进程加入,通信器动态恢复等功能,使得程序在有进程发生失效后能够动态重构其通信器和通信空间。设计了用于程序用户数据保存和恢复的伙伴协议。伙伴协议通过两个或多个进程之间互相保存对方进程用户数据来完成容错功能,设计简单且容错能力可根据伙伴协议的变化而变化,方便用户根据程序容错需求通过调整伙伴协议来调整程序容错能力。设计了保证系统程序状态正确性的全局一致性协议,此协议设计与实现简单、开销较小。在伙伴协议和检查点机制提供的数据支持下,用于保证程序失效前后程序系统数据和用户数据保存和恢复的一致性。设计和实现了VFTS系统,并采用NPB程序对程序添加容错功能后对程序时间性能、空间性能、通信负载、容错能力和系统I/O带来的影响进行了详细测试和分析。