使用高级检查点功能扩展OpenCHK模型
Extending the OpenCHK Model with Advanced Checkpoint Features
摘要:
有效使用超大规模系统的主要挑战之一是减轻故障的影响。应用程序级别的检查点/重启(CR)方法在生产力、健壮性和性能之间提供了最佳平衡。有许多解决方案在应用程序级别实现CR。它们都提供高级I/O功能,以最大限度地减少CR引入的开销。尽管如此,在可编程性和灵活性方面仍有改进的空间,因为最终用户必须使用低级API手动序列化和重新序列化应用程序状态,修改应用程序流以考虑重新启动,或者每当后端库更改时重写CR代码。在这项工作中,我们提出了一组编译器指令和条款,允许用户以一种简单的方式指定CR操作。我们的方法支持所有CR库提供的通用CR功能。但是,它也可以扩展以支持仅在某些CR库中可用的高级功能,例如差分检查点,HDF 5格式的使用以及使用容错专用线程的可能性。我们的评估结果显示,可编程性有了很大的提高。平均而言,我们分别将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.
机构、总结、中文摘要均由AI分析而来,可能存在错误,请以论文正文为准。