Skip to main content
QUICK REVIEW

[论文解读] Rolex: Resilience-Oriented Language Extensions for Extreme-Scale Systems

Saurabh Hukerikar, Robert F. Lucas|ArXiv.org|May 6, 2016
Distributed systems and fault tolerance参考文献 21被引用 4
一句话总结

Rolex 为 HPC 应用引入了以弹性为核心的语言扩展,将程序员对容错性的知识编码在语言层面,使编译器和运行时系统能够检测、隔离并屏蔽错误而不崩溃。通过集成类型限定符、指令和库例程,Rolex 显著提升了应用的弹性,减少了对检查点机制的依赖,并增强了极端规模系统中的容错能力。

ABSTRACT

Future exascale high-performance computing (HPC) systems will be constructed from VLSI devices that will be less reliable than those used today, and faults will become the norm, not the exception. This will pose significant problems for system designers and programmers, who for half-a-century have enjoyed an execution model that assumed correct behavior by the underlying computing system. The mean time to failure (MTTF) of the system scales inversely to the number of components in the system and therefore faults and resultant system level failures will increase, as systems scale in terms of the number of processor cores and memory modules used. However every error detected need not cause catastrophic failure. Many HPC applications are inherently fault resilient. Yet it is the application programmers who have this knowledge but lack mechanisms to convey it to the system. In this paper, we present new Resilience Oriented Language Extensions (Rolex) which facilitate the incorporation of fault resilience as an intrinsic property of the application code. We describe the syntax and semantics of the language extensions as well as the implementation of the supporting compiler infrastructure and runtime system. Our experiments show that an approach that leverages the programmer's insight to reason about the context and significance of faults to the application outcome significantly improves the probability that an application runs to a successful conclusion.

研究动机与目标

  • 应对百亿亿次级 HPC 系统中日益严峻的硬件故障挑战,由于规模扩展和晶体管几何尺寸缩小,组件故障率预计将显著上升。
  • 克服传统检查点-回滚恢复机制的局限性,实现更高效、更少干扰的应用级容错弹性。
  • 为 HPC 程序员提供一种实用且可扩展的机制,用于在应用代码中表达其对容错性和错误弹性的领域特定知识。
  • 将语言级弹性语义与编译器基础设施和运行时推理系统集成,实现跨层错误检测、屏蔽和恢复。
  • 证明通过语言扩展利用程序员洞察力,可显著提高在系统级故障下应用成功完成的概率。

提出的方法

  • 引入一组语言扩展——类型限定符、指令和库例程,使程序员能够通过注解代码来表达弹性语义,如容错性、鲁棒性和缓解措施。
  • 设计前端源到源编译器基础设施,将带注解的源代码转换为插入弹性感知的仪器化逻辑和错误处理代码。
  • 实现一个运行时推理系统,监控执行过程,检测故障,并根据 Rolex 扩展编码的语义应用弹性策略。
  • 支持三种弹性模式:容错(继续执行)、鲁棒性(安全重执行)和缓解(通过稳定化或校验和纠正错误)。
  • 与现有 HPC 编程模型(如 C、C++、Fortran)集成,确保向后兼容性和易于采用。
  • 使用加速故障注入技术,在真实故障率下评估常见 HPC 内核(如 DGEMM、CG 和 SS-CG)的弹性表现。

实验结果

研究问题

  • RQ1语言级扩展能否有效编码当前隐含且系统无法访问的应用级容错弹性知识?
  • RQ2编译器和运行时系统在多大程度上能利用程序员提供的弹性语义来提升容错能力,而无需依赖传统检查点机制?
  • RQ3弹性机制(尤其是缓解机制)的性能开销与在弹性提升和恢复成本降低方面的收益相比如何?
  • RQ4弹性感知的编程模型能否减少极端规模 HPC 工作负载中检查点的频率和冗余计算?
  • RQ5Rolex 的构造在注入故障条件下,对多样化 HPC 内核的应用弹性提升效果如何?

主要发现

  • Rolex 通过利用程序员对容错弹性的知识,使 HPC 应用在发生故障后仍能继续执行,显著提高了成功完成的概率。
  • 使用弹性导向的语言扩展减少了对检查点-回滚恢复的依赖,从而降低了冗余计算和能耗。
  • SS-CG 内核因采用轻量级稳定化缓解机制,在测试代码中表现出最佳效率,而 DGEMM 和 CG 由于校验和操作开销较大,效率较低。
  • 基于缓解的构造带来了更高的开销,但其中大部分源于算法成本,而非编译器或运行时的低效。
  • 故障注入实验表明,Rolex 增强的应用在传统系统会崩溃的故障条件下仍能保持正确性并继续执行。
  • Rolex 与编译器和运行时系统的集成实现了跨层错误检测、屏蔽和恢复,展示了实现弹性百亿亿次执行的可行路径。

更好的研究,从现在开始

从阅读论文到最终审阅,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。