论文部分内容阅读
随着高性能计算的快速发展,高性能计算系统的规模快速扩大,在近几年间系统内核数目甚至达到了百万级别。因此,系统的平均无故障时间随之降到了小时的级别,远大于系统的平均无故障时间,导致系统频繁的出现错误,引起系统性能急剧下降。因此,容错在高性能计算领域得到了越来越多的重视,变得越来越重要。分层回滚恢复协议,是高性能计算中常用的容错方案,它结合了协作式检查点和消息日志协议的优点,根据应用程序特有的通讯模式将进程进行分组,并在组内和组间采用不同的容错机制。分层回滚恢复协议在提供错误控制的同时减少了需要记录消息的数量。然而,通过对MPI通讯机制和通讯模式的详细研究发现,随着应用的复杂化,应用的通讯模式并不是一成不变的。分层回滚恢复协议在这样的情景中并不能达到最高的效率。所以,在应用的通讯模式改变的情景中,有必要提出一种基于预测机制的动态分组策略,来进一步的提高分层回滚恢复协议的效率。在该动态分组策略中,应用程序被划分成多个程序段。每个程序段在运行完成后,通过分析消息传递记录来算出该程序段对应的进程分组方案,然后将得到的分组方案应用到下一程序段的运行过程中,以此来适应应用通讯模式的变化。该策略减少了进程分组的次数,从而减少了进程迁移引入的额外开销。基于该动态分组策略,设计并实现了一个基于分层回滚恢复协议的动态分组系统,并详细介绍了其中各个模块的功能以及对应的工作流程。通过在High Performance Linpack基准上应用动态分组策略,并在实验中分别使用两种不同的静态进程分组算法,评估了该策略在减少消息记录上的有效性和可扩展性。同时,定义了一个开销计算公式来评估分层回滚恢复协议的开销。实验结果表明,动态分组策略有效减少的消息记录从24%到45%不等,从而减少了内存资源的占用。另外,动态分组策略相较于静态进程分组算法减少了约15%的开销,同时具有良好的可扩展性。