Towards Formal Approaches to System Resilience
Authors:
- Vishal Chandra SharmaVSVishal Chandra Sharma
- Arvind HaranAHArvind Haran
- Zvonimir RakamaricZRZvonimir Rakamaric
- Ganesh GopalakrishnanGGGanesh Gopalakrishnan
- 1 December 2013
- conference paper
- Published by Institute of Electrical and Electronics Engineers (IEEE)
- p. 41-50
Abstract
Technology scaling and techniques such as dynamic voltage/frequency scaling are predicted to increase the number of transient faults in future processors. Error detectors implemented in hardware are often energy inefficient, as they are "always on." While software-level error detection can augment hardware-level detectors, creating detectors in software that are highly effective remains a challenge. In this paper, we first present anew LLVM-level fault injector called KULFI that helps simulate faults occurring within CPU state elements in a versatile manner. Second, using KULFI, we study the behavior of a family of well-known and simple algorithms under error injection. (We choose a family of sorting algorithms for this study.) We then propose a promising way to interpret our empirical results using a formal model that builds on the idea of predicate state transition diagrams. After introducing the basic abstraction underlying our predicate transition diagrams, we draw connections to the level of resilience empirically observed during fault injection studies. Building on the observed connections, we develop a simple, and yet effective, predicate-abstraction-based fault detector. While in its initial stages, ours is believed to be the first study that offers a formal way to interpret and compare fault injection results obtained from algorithms from within one family. Given the absolutely unpredictable nature of what a fault can do to a computation in general, our approach may help designers choose amongst a class of algorithms one that behaves most resilient of all.Keywords
This publication has 26 references indexed in Scilit:
- BLOCKWATCH: Leveraging similarity in parallel programs for error detection2012
- Hauberk: Lightweight Silent Data Corruption Error Detector for GPGPU2011
- Relax2010
- Experimental Study of Resilient Algorithms and Data StructuresLecture Notes in Computer Science, 2010
- A PIN-Based Dynamic Software Fault Injection System2008
- Application-Based Metrics for Strategic Placement of Detectors2006
- A Theory of Predicate-Complete Test Coverage and Generation2005
- LLVM: A compilation framework for lifelong program analysis & transformation2004
- Fault injection techniques and toolsComputer, 1997
- FERRARI: a flexible software-based fault and error injection systemIEEE Transactions on Computers, 1995