|Title||FITL: Extending LLVM for the Translation of Fault-injection Directives|
|Publication Type||Conference Paper|
|Year of Publication||2015|
|Authors||Denny, Joel E., Lee Seyong, and Vetter Jeffrey S.|
|Conference Name||Proceedings of the Second Workshop on the LLVM Compiler Infrastructure in HPC|
|Conference Location||Austin, TX, USA|
|Keywords||C pragma, compiler intermediate representation, directive-based programming, fault injection, LLVM, OpenARC, resiliency|
The frequency of hardware errors in HPC systems continues to grow as system designs evolve toward exascale. Tolerating these errors efficiently and effectively will require software-based resilience solutions. With this requirement in mind, recent research has increasingly employed LLVM-based tools to simulate transient hardware faults in order to study the resilience characteristics of specific applications. However, such tools require researchers to configure their experiments at the level of the LLVM intermediate representation (LLVM IR) rather than at the source level of the applications under study. In this paper, we present FITL (Fault-Injection Toolkit for LLVM), a set of LLVM extensions to which it is straightforward to translate source-level pragmas that specify fault injection. While we have designed FITL not to be tied to any particular compiler front end or high-level language, we also describe how we have extended our OpenARC compiler to translate a novel set of fault-injection pragmas for C to FITL. Finally, we present several resilience studies we have conducted using FITL, including a comparison with a source-level fault injector we have built as part of OpenARC.