论文标题
使用高级检查点功能扩展OpenCHK模型
Extending the OpenCHK Model with Advanced Checkpoint Features
论文作者
论文摘要
有效地使用极限系统的主要挑战之一是减轻故障的影响。应用程序级检查点/重新启动(CR)方法提供了生产力,鲁棒性和性能之间的最佳权衡。在应用程序级别实施CR的解决方案有许多解决方案。它们都提供了先进的I/O功能,以最大程度地减少CR引入的高架。然而,在可编程性和灵活性方面,仍然存在改进的空间,因为最终用户必须使用低级API手动序列化并进行序列化应用程序状态,请在后端库更改时修改应用程序的流动以考虑重新启动或重写CR代码。在这项工作中,我们提出了一组编译器指令和条款,使用户可以简单地指定CR操作。我们的方法支持所有CR库提供的共同CR功能。但是,它也可以扩展到支持仅在某些CR库中可用的高级功能,例如差分检查点,使用HDF5格式以及使用使用故障 - 耐受性的线程的可能性。我们评估的结果表明,可编程性有很高的增加。平均而言,我们将FTI,SCR和VELOC的代码线数分别减少了71%,94%和64%,并且与直接使用后端库相比,使用我们的解决方案没有感知的其他开销。最后,可以增强可移植性,因为我们的编程模型允许在不更改任何代码的情况下使用任何后端库。
One of the major challenges in using extreme scale systems efficiently is to mitigate the impact of faults. Application-level checkpoint/restart (CR) methods provide the best trade-off between productivity, robustness, and performance. There are many solutions implementing CR at the application level. They all provide advanced I/O capabilities to minimize the overhead introduced by CR. Nevertheless, there is still room for improvement in terms of programmability and flexibility, because end-users must manually serialize and deserialize application state using low-level APIs, modify the flow of the application to consider restarts, or rewrite CR code whenever the backend library changes. In this work, we propose a set of compiler directives and clauses that allow users to specify CR operations in a simple way. Our approach supports the common CR features provided by all the CR libraries. However, it can also be extended to support advanced features that are only available in some CR libraries, such as differential checkpointing, the use of HDF5 format, and the possibility of using fault-tolerance-dedicated threads. The result of our evaluation revealed a high increase in programmability. On average, we reduced the number of lines of code by 71%, 94%, and 64% for FTI, SCR, and VeloC, respectively, and no additional overhead was perceived using our solution compared to using the backend libraries directly. Finally, portability is enhanced because our programming model allows the use of any backend library without changing any code.