2013 · 59 citations · 16 references
ComputingComputer EngineeringComputer ScienceAlgorithmsCompilersFault-tolerant ComputingCode GenerationCompiler ConstructionControl-flow AnalysisData-flow AnalysisInstruction Set ArchitectureStatic Code AnalysisCompiler DesignCompiler-based GenerationIdempotenceRuntime Code GenerationTuning
Leveraging idempotence for efficient recovery is of emerging interest in compiler design. In particular, identifying semantically idempotent code and then compiling such code to preserve the semantic idempotence property enables recovery with substantially lower overheads than competing software techniques. However, the efficacy of this technique depends on application-, architecture-, and compiler-specific factors that are not well understood. In this paper, we develop algorithms for the code generation of idempotent code regions and evaluate these algorithms considering how they are impacted by these factors. Without optimizing for these factors, we find that typical performance overheads fall in the range of roughly 10-15%. However, manipulating application idempotent region size typically improves the run-time performance of compiled code by 2-10%, differences in the architecture instruction set affect performance by up to 15%, and knowing in the compiler whether control flow side-effects can or cannot occur can impact performance by up to 10%. Overall, we find that, with small idempotent region and careful architecture- and application-specific tuning, it is possible to bring compiler performance overheads consistently down into the single-digit percentage range. The absolute best performance occurs when constructing the largest possible idempotent regions; to this end, however, better compiler support is needed. In the interest of spurring development in this area, we open-source our LLVM compiler implementation and make it available as a research tool.
16
Chi-Keung Luk, Robert Cohn, Robert Muth et al. · ACM SIGPLAN Notices · 2005 · 3.2K citations
Chi-Keung Luk, Robert Cohn, Robert Muth et al. · 2005 · 2.3K citations
Benchmarking modern multiprocessors
Kai Li, Christian Bienia · European Journal of Cancer Care · 2011 · 1K citations
The M5 Simulator: Modeling Networked Systems
Nathan Binkert, Ronald Dreslinski, L. Hsu et al. · IEEE Micro · 2006 · 846 citations