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プログラマーがアプリケーションコード内で障害耐性およびエラー耐性に関する分野固有の知識を表現できる、実用的で拡張可能なメカニズムを提供すること。
  • 言語レベルの耐障害性セマンティクスをコンパイラインfraとランタイム推論システムと統合し、レイヤー間をまたがる障害検出・マスク・回復を可能にすること。
  • プログラマーの知見を言語拡張を通じて活用することで、システムレベルの障害が発生してもアプリケーションの正常終了確率を著しく高められることを実証すること。

提案手法

  • 障害耐性セマンティクス(耐性、頑健性、緩和)を表現できるように、型修飾子、ディレクティブ、ライブラリルーチンからなる一連の言語拡張を導入する。
  • アノテートされたソースコードを変換し、耐障害性に配慮したインストルメンテーションおよびエラー処理ロジックを挿入する、ソース・ツー・ソースのコンパイラインフラを設計する。
  • 実行を監視し、障害を検出し、Rolex拡張子で符号化されたセマンティクスに従って耐障害戦略を適用するランタイム推論システムを実装する。
  • 3つの耐障害モードをサポートする:耐性(実行を継続)、頑健性(安全に再実行)、緩和(安定化またはチェックサムによるエラーの是正)。
  • 従来のHPCプログラミングモデル(例:C、C++、Fortran)と統合し、後方互換性と導入の容易さを確保する。
  • 現実的な障害率を想定した加速型障害インジェクションを用い、DGEMM、CG、SS-CGなどの一般的なHPCカーネルにおける耐障害性を評価する。

実験結果

リサーチクエスチョン

  • RQ1言語レベルの拡張は、現在は暗黙的かつシステムからアクセスできないアプリケーションレベルの障害耐性知識を効果的に符号化できるか?
  • RQ2コンパイラおよびランタイムシステムが、従来のチェックポイントに依存せずに、プログラマーが提供する耐障害性セマンティクスをどの程度活用して障害耐性を向上させられるか?
  • RQ3特に緩和機構における性能オーバーヘッドは、耐障害性の向上と回復コストの低減という利点と比較して、どの程度の水準にあるか?
  • RQ4耐障害性に配慮したプログラミングモデルは、エクスタスケールHPCワークロードにおけるチェックポイントの頻度と無駄な計算を減らすことができるか?
  • RQ5インジェクションされた障害条件下で、Rolexの構成要素は多様なHPCカーネルにおけるアプリケーション耐障害性をどの程度向上させられるか?

主な発見

  • Rolexにより、HPCアプリケーションは障害後もプログラマーの障害耐性に関する知識を活用して実行を継続でき、正常終了の可能性が著しく向上する。
  • 耐障害指向型言語拡張の使用により、チェックポイント・リトライ回復に依存する度合いが低下し、無駄な計算とエネルギー消費が削減される。
  • SS-CGカーネルは、軽量な安定化に基づく緩和により、テストされたコードの中で最も高い効率を示したが、DGEMMおよびCGは高価なチェックサム演算のため、低い効率にとどまった。
  • 緩和ベースの構成要素には高いオーバーヘッドが生じたが、その大部分はコンパイラやランタイムの非効率さではなく、アルゴリズム的コストに起因していた。
  • 障害インジェクション実験の結果、従来のシステムがクラッシュする状況下でも、Rolexで強化されたアプリケーションは正しく動作し、実行を継続した。
  • Rolexをコンパイラおよびランタイムシステムと統合することで、レイヤー間をまたがる障害検出・マスク・回復が可能となり、エクサスケール実行における実用的な道筋を示した。

より良い研究を、今すぐ始めましょう

論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。

クレジットカード登録不要

このレビューはAIが作成し、人間の編集者が確認しました。