论文部分内容阅读
随着高性能计算机系统规模的增大,系统的可靠性问题也越来越突出。目前高性能计算机系统容错大都采用检查点技术,通过周期性地将系统的状态写入磁盘。但随着高性能计算机系统的计算能力和磁盘读写能力之间差距的不断增大,检查点技术向下一代高性能计算机的可扩展性堪忧。另一种解决途径是算法失效恢复技术,它比检查点技术具有更高的效率。然而,该技术和检查点技术一样,都基于停等模式,即一个节点失效,全系统都要停下来等其修复。对于下一代高性能计算机,停等模式在很大程度上会影响程序的并行效率。
本文提出了一种非停等的算法级容错技术——算法失效热替换技术。在程序执行过程中发生节点失效后,该技术不是停等地恢复失效节点上的数据,而是用冗余节点替换失效节点,使运算能够立刻继续进行下去。程序的最终结果可以由替换后得到的中间结果经过一个简单的变换得到。针对多次失效的情况,该技术采用“后台加速重建校验和”机制,通过增加一些加速节点协助冗余节点重建校验和,并将重建的过程和计算节点的正常执行过程重叠起来,从而在理论上可以将重建的开销降至很低。
为了验证热替换技术的可行性,我们将其应用于HPL中,并评估了其性能。这套算法级实现可以容忍HPL执行过程中耗时最多的DGEMM过程中的模拟失效。实验结果显示,在最大1800个核的规模下,热替换技术容忍10次模拟失效的开销约为同等情况下算法失效恢复技术开销的25%。
为了运用热替换技术容忍运行时的节点失效,本文探讨了它所需要的最小外部环境支持。结合现有的外部环境支持,我们在应用层加入了一些额外的支持,先后实现了两套解决方案。第一套解决方案可以容忍HPL执行过程中的单个运行时进程失效;第二套解决方案使用外部监测机制检错,可以容忍DGEMM过程中的多个运行时节点失效,包括由Infiniband网络故障引起的节点失效。第一套解决方案的实验结果显示,即使在小规模下,热替换技术的性能也明显优于算法失效恢复技术。