|
早稲田大学
木村 啓二
教授
機関別共同研究
Discovery Saga
論文分野別Discovery Saga
研究テーマDiscovery Saga
協賛企業
共同研究先:Georgia Institute of Technology
Academic
共同研究数 1
Article
2019 12
ACM:Association for Computing Machinery
Compiler-support for critical data persistence in NVM
(Last author)
NVMにおけるクリティカルデータ永続化のためのコンパイラサポート
Reem Elkhouly, Mohammad Alshboul, Akihiro Hayashi, Yan Solihin, Keiji Kimura
ACM Transactions on Architecture and Code Optimization
【抄録】
Non-volatile Main Memories (NVMs) offer a promising way to preserve data persistence and enable computation recovery in case of failure. While the use of NVMs can significantly reduce the overhead of failure recovery, which is the case with High-Performance Computing (HPC) kernels, rewriting existing programs or writing new applications for NVMs is non-trivial. In this article, we present a compiler-support that automatically inserts complex instructions into kernels to achieve NVM data-persistence based on a simple programmer directive. Unlike checkpointing techniques that store the whole system state, our technique only persists user-designated objects as well as some parameters required for safe recovery such as loop induction variables. Also, our technique can reduce the number of data transfer operations, because our compiler coalesces consecutive memory-persisting operations into a single memory transaction per cache line when possible. Our compiler-support is implemented in the LLVM tool-chain and introduces the necessary modifications to loop-intensive computational kernels (e.g., TMM, LU, Gauss, and FFT) to force data persistence. The experiments show that our proposed compiler-support outperforms the most recent checkpointing techniques while its performance overheads are insignificant. © 2019 Copyright held by the owner/author(s).
【抄録日本語訳】
不揮発性メインメモリ(NVM)は、データの永続性を保持し、障害発生時の計算リカバリーを可能にする有望な手段である。NVMの利用により、HPC(High-Performance Computing)カーネルに見られるような障害復旧のオーバーヘッドを大幅に削減できる一方で、既存プログラムの書き換えや新規アプリケーションの作成をNVM向けに行うことは自明ではありません。本稿では、簡単なプログラマ指示により、NVMデータ永続化を実現する複雑な命令をカーネルに自動挿入するコンパイラサポートを紹介します。システム全体の状態を保存するチェックポイント技術とは異なり、本技術では、ユーザが指定したオブジェクトと、ループ誘導変数など安全なリカバリに必要な一部のパラメータのみを永続化する。また、本技術では、コンパイラが連続したメモリ永続化操作を可能な限りキャッシュラインごとに単一のメモリトランザクションにまとめるため、データ転送の回数を減らすことができる。我々のコンパイラサポートはLLVMツールチェーンに実装されており、ループを多用する計算カーネル(TMM、LU、Gauss、FFTなど)に必要な修正を導入してデータの持続性を強制的に実現します。実験の結果、提案するコンパイラサポートは、最新のチェックポイント技術を凌駕する性能を示し、その性能オーバーヘッドも軽微であることがわかった。© 2019 Copyright held by the owner/author(s).