Finding Resilience-Friendly Compiler Optimizations Using Meta-Heuristic Search Techniques

With the projected future increase in hardware error rates, application software needs to be resilient to hardware faults. An important factor affecting an application's error resilience and vulnerability is the set of optimizations used when compiling it. We propose an automated technique based on genetic algorithms to find the application-specific set of compiler optimizations that can boost performance without degrading the application's error resilience. We find that the resulting optimized code has significantly better error resilience than when being compiled with the standard optimization levels (i.e., O1, O2, O3), while attaining comparable performance improvements, thus leading to lower overall vulnerabilities.

[1]  Martin Schulz,et al.  IPAS: Intelligent protection against silent output corruption in scientific applications , 2016, 2016 IEEE/ACM International Symposium on Code Generation and Optimization (CGO).

[2]  R. Haupt Optimum population size and mutation rate for a simple real genetic algorithm that optimizes array factors , 2000, IEEE Antennas and Propagation Society International Symposium. Transmitting Waves of Progress to the Next Millennium. 2000 Digest. Held in conjunction with: USNC/URSI National Radio Science Meeting (C.

[3]  Kai Li,et al.  The PARSEC benchmark suite: Characterization and architectural implications , 2008, 2008 International Conference on Parallel Architectures and Compilation Techniques (PACT).

[4]  Franck Cappello,et al.  Toward Exascale Resilience: 2014 update , 2014, Supercomput. Front. Innov..

[5]  Jacob A. Abraham,et al.  Quantitative evaluation of soft error injection techniques for robust system design , 2013, 2013 50th ACM/EDAC/IEEE Design Automation Conference (DAC).

[6]  Kenneth A. De Jong,et al.  An Analysis of the Interacting Roles of Population Size and Crossover in Genetic Algorithms , 1990, PPSN.

[7]  Keith D. Cooper,et al.  Optimizing for reduced code space using genetic algorithms , 1999, LCTES '99.

[8]  Hyung Rim Choi,et al.  A hybrid genetic algorithm for the job shop scheduling problems , 2003, Comput. Ind. Eng..

[9]  Gu-Yeon Wei,et al.  Measuring Code Optimization Impact on Voltage Noise , 2013 .

[10]  Karthik Pattabiraman,et al.  Quantifying the Accuracy of High-Level Fault Injection Techniques for Hardware Faults , 2014, 2014 44th Annual IEEE/IFIP International Conference on Dependable Systems and Networks.

[11]  Rajarshi Das,et al.  A Study of Control Parameters Affecting Online Performance of Genetic Algorithms for Function Optimization , 1989, ICGA.

[12]  Jason Cong,et al.  Impact of loop transformations on software reliability , 2015, 2015 IEEE/ACM International Conference on Computer-Aided Design (ICCAD).

[13]  Amin Ansari,et al.  Shoestring: probabilistic soft error reliability on the cheap , 2010, ASPLOS XV.

[14]  Shekhar Y. Borkar,et al.  Designing reliable systems from unreliable components: the challenges of transistor variability and degradation , 2005, IEEE Micro.

[15]  John J. Grefenstette,et al.  Optimization of Control Parameters for Genetic Algorithms , 1986, IEEE Transactions on Systems, Man, and Cybernetics.

[16]  Mary W. Hall,et al.  Analyzing the effects of compiler optimizations on application reliability , 2011, 2011 IEEE International Symposium on Workload Characterization (IISWC).

[17]  James E. Baker,et al.  Adaptive Selection Methods for Genetic Algorithms , 1985, International Conference on Genetic Algorithms.

[18]  John H. Holland,et al.  Adaptation in Natural and Artificial Systems: An Introductory Analysis with Applications to Biology, Control, and Artificial Intelligence , 1992 .

[19]  Karthik Pattabiraman,et al.  Effect of Compiler Optimizations on the Error Resilience of Soft Computing Applications , 2013 .

[20]  Paul Peter Urone,et al.  College Physics: OpenStax , 2013 .

[21]  Lalit M. Patnaik,et al.  Genetic algorithms: a survey , 1994, Computer.

[22]  Westley Weimer,et al.  Post-compiler software optimization for reducing energy , 2014, ASPLOS.

[23]  Sarita V. Adve,et al.  SWAT : An Error Resilient System , 2008 .

[24]  Muhammad Shafique,et al.  Reliable software for unreliable hardware: Embedded code generation aiming at reliability , 2011, 2011 Proceedings of the Ninth IEEE/ACM/IFIP International Conference on Hardware/Software Codesign and System Synthesis (CODES+ISSS).

[25]  Michael F. P. O'Boyle,et al.  Evaluating the Effects of Compiler Optimisations on AVF , 2008 .

[26]  Una-May O'Reilly,et al.  Genetic Programming Applied to Compiler Heuristic Optimization , 2003, EuroGP.

[27]  M. Kitagawa,et al.  Implementation of genetic algorithm for distribution systems loss minimum re-configuration , 1992 .

[28]  Vikram S. Adve,et al.  LLVM: a compilation framework for lifelong program analysis & transformation , 2004, International Symposium on Code Generation and Optimization, 2004. CGO 2004..

[29]  Wen-mei W. Hwu,et al.  Parboil: A Revised Benchmark Suite for Scientific and Commercial Throughput Computing , 2012 .

[30]  Roger Johansson,et al.  A Study of the Impact of Bit-Flip Errors on Programs Compiled with Different Optimization Levels , 2014, 2014 Tenth European Dependable Computing Conference.

[31]  Joel Emer,et al.  A systematic methodology to compute the architectural vulnerability factors for a high-performance microprocessor , 2003, Proceedings. 36th Annual IEEE/ACM International Symposium on Microarchitecture, 2003. MICRO-36..

[32]  Meeta Sharma Gupta,et al.  SDCTune: A model for predicting the SDC proneness of an application for configurable protection , 2014, 2014 International Conference on Compilers, Architecture and Synthesis for Embedded Systems (CASES).

[33]  Sanjay J. Patel,et al.  Examining ACE analysis reliability estimates using fault-injection , 2007, ISCA '07.