Skip to main content
QUICK REVIEW

[논문 리뷰] Rolex: Resilience-Oriented Language Extensions for Extreme-Scale Systems

Saurabh Hukerikar, Robert F. Lucas|ArXiv.org|2016. 05. 06.
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 등)과 통합하여 후행 호환성과 도입 용이성을 확보한다.
  • 실제 고장률을 반영한 가속화된 고장 주입 기법을 사용하여 DGEMM, CG, SS-CG와 같은 일반적인 HPC 커널에서 복원성 수준을 평가한다.

실험 결과

연구 질문

  • RQ1언어 수준의 확장자가 현재 암묵적이고 시스템에서 접근할 수 없는 응용 프로그램 수준의 고장 복원성 지식을 효과적으로 표현할 수 있는가?
  • RQ2컴파일러와 런타임 시스템이 기존의 체크포인팅에 의존하지 않고 프로그래머가 제공한 복원성 의미 체계를 얼마나 잘 활용하여 고장 내성 능력을 향상시킬 수 있는가?
  • RQ3특히 완화 기능의 경우 성능 오버헤드가 복원성 향상과 복구 비용 감소의 이점에 비해 얼마나 큰가?
  • RQ4복원성 인지 프로그래밍 모델은 초대규모 HPC 워크로드에서 체크포인팅 빈도와 부과된 중복 계산을 줄일 수 있는가?
  • RQ5주입된 고장 조건 하에서 Rolex의 구성 요소가 다양한 HPC 커널에서 응용 프로그램 복원성 향상에 얼마나 효과적인가?

주요 결과

  • Rolex는 프로그래머가 고려한 복원성 지식을 활용하여 고장 발생 후에도 애플리케이션 실행을 계속할 수 있도록 하여 성공적인 완료 가능성을 크게 높였다.
  • 복원성 중심 언어 확장의 사용은 체크포인팅 및 롤백 복구에 대한 의존도를 줄였으며, 이로 인해 중복 계산과 에너지 소비가 감소했다.
  • SS-CG 커널은 경량 안정화 기반 완화 기능 덕분에 테스트된 코드들 중에서 가장 높은 효율성을 보였다. 반면 DGEMM과 CG는 체크섬 연산의 비용이 높아 효율성이 낮았다.
  • 완화 기반 구성 요소는 높은 오버헤드를 유발했지만, 대부분이 컴파일러나 런타임의 비효율성 때문이 아니라 알고리즘적 비용 때문이었다.
  • 고장 주입 실험 결과 Rolex가 통합된 애플리케이션은 기존 시스템이 충돌하는 조건에서도 정확성 유지와 실행 계속을 보였다.
  • Rolex를 컴파일러 및 런타임 시스템과 통합함으로써 계층 간 오류 감지, 마스킹 및 복구가 가능해졌으며, 이는 엑사스케일 실행을 위한 실현 가능한 길을 보여주었다.

더 나은 연구,지금 바로 시작하세요

논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.

카드 등록 없음 · 무료 플랜 제공

이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.