Compilers: principles, techniques, and tools
Compilers: principles, techniques, and tools
Superoptimizer: a look at the smallest program
ASPLOS II Proceedings of the second international conference on Architectual support for programming languages and operating systems
Profile guided code positioning
PLDI '90 Proceedings of the ACM SIGPLAN 1990 conference on Programming language design and implementation
Power analysis and minimization techniques for embedded DSP software
IEEE Transactions on Very Large Scale Integration (VLSI) Systems
Experiments of the effectiveness of dataflow- and controlflow-based test adequacy criteria
ICSE '94 Proceedings of the 16th international conference on Software engineering
Yesterday, my program worked. Today, it does not. Why?
ESEC/FSE-7 Proceedings of the 7th European software engineering conference held jointly with the 7th ACM SIGSOFT international symposium on Foundations of software engineering
Communications of the ACM
Wattch: a framework for architectural-level power analysis and optimizations
Proceedings of the 27th annual international symposium on Computer architecture
Genetic Programming III: Darwinian Invention & Problem Solving
Genetic Programming III: Darwinian Invention & Problem Solving
Competitive Environments Evolve Better Solutions for Complex Tasks
Proceedings of the 5th International Conference on Genetic Algorithms
Finding effective optimization phase sequences
Proceedings of the 2003 ACM SIGPLAN conference on Language, compiler, and tool for embedded systems
Gprof: A call graph execution profiler
SIGPLAN '82 Proceedings of the 1982 SIGPLAN symposium on Compiler construction
Acceptability-oriented computing
OOPSLA '03 Companion of the 18th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Randomized instruction set emulation
ACM Transactions on Information and System Security (TISSEC)
DART: directed automated random testing
Proceedings of the 2005 ACM SIGPLAN conference on Programming language design and implementation
CUTE: a concolic unit testing engine for C
Proceedings of the 10th European software engineering conference held jointly with 13th ACM SIGSOFT international symposium on Foundations of software engineering
Exhaustive Optimization Phase Order Space Exploration
Proceedings of the International Symposium on Code Generation and Optimization
Enhancing server availability and security through failure-oblivious computing
OSDI'04 Proceedings of the 6th conference on Symposium on Opearting Systems Design & Implementation - Volume 6
A multi-objective approach to search-based test data generation
Proceedings of the 9th annual conference on Genetic and evolutionary computation
The PARSEC benchmark suite: characterization and architectural implications
Proceedings of the 17th international conference on Parallel architectures and compilation techniques
ASSURE: automatic software self-healing using rescue points
Proceedings of the 14th international conference on Architectural support for programming languages and operating systems
Producing wrong data without doing anything obviously wrong!
Proceedings of the 14th international conference on Architectural support for programming languages and operating systems
An empirical study of incorporating cost into test suite reduction and prioritization
Proceedings of the 2009 ACM symposium on Applied Computing
PetaBricks: a language and compiler for algorithmic choice
Proceedings of the 2009 ACM SIGPLAN conference on Programming language design and implementation
Automatically finding patches using genetic programming
ICSE '09 Proceedings of the 31st International Conference on Software Engineering
Application heartbeats for software performance and health
Proceedings of the 15th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming
Survival strategies for synthesized hardware systems
MEMOCODE'09 Proceedings of the 7th IEEE/ACM international conference on Formal Methods and Models for Codesign
A Field Guide to Genetic Programming
A Field Guide to Genetic Programming
Green: a framework for supporting energy-conscious programming using controlled approximation
PLDI '10 Proceedings of the 2010 ACM SIGPLAN conference on Programming language design and implementation
Proceedings of the 32nd ACM/IEEE International Conference on Software Engineering - Volume 1
Using Mutation to Automatically Suggest Fixes for Faulty Programs
ICST '10 Proceedings of the 2010 Third International Conference on Software Testing, Verification and Validation
Automated fixing of programs with contracts
Proceedings of the 19th international symposium on Software testing and analysis
Automated program repair through the evolution of assembly code
Proceedings of the IEEE/ACM international conference on Automated software engineering
Pursue robust indefinite scalability
HotOS'13 Proceedings of the 13th USENIX conference on Hot topics in operating systems
Evaluating the effectiveness of model-based power characterization
USENIXATC'11 Proceedings of the 2011 USENIX conference on USENIX annual technical conference
Genetic programming for shader simplification
Proceedings of the 2011 SIGGRAPH Asia Conference
Probabilistically accurate program transformations
SAS'11 Proceedings of the 18th international conference on Static analysis
GenProg: A Generic Method for Automatic Software Repair
IEEE Transactions on Software Engineering
Mutation-Driven Generation of Unit Tests and Oracles
IEEE Transactions on Software Engineering
Flight of the FINCH Through the Java Wilderness
IEEE Transactions on Evolutionary Computation
Incorrect systems: it's not the problem, it's the solution
Proceedings of the 49th Annual Design Automation Conference
Proving acceptability properties of relaxed nondeterministic approximate programs
Proceedings of the 33rd ACM SIGPLAN conference on Programming Language Design and Implementation
Evolutionary Improvement of Programs
IEEE Transactions on Evolutionary Computation
A systematic study of automated program repair: fixing 55 out of 105 bugs for $8 each
Proceedings of the 34th International Conference on Software Engineering
Power Modeling and Characterization of Computing Devices: A Survey
Foundations and Trends in Electronic Design Automation
Proceedings of the 27th IEEE/ACM International Conference on Automated Software Engineering
Improving integer security for systems with KINT
OSDI'12 Proceedings of the 10th USENIX conference on Operating Systems Design and Implementation
Power containers: an OS facility for fine-grained power and energy management on multicore servers
Proceedings of the eighteenth international conference on Architectural support for programming languages and operating systems
Proceedings of the eighteenth international conference on Architectural support for programming languages and operating systems
Automated repair of binary and assembly programs for cooperating embedded devices
Proceedings of the eighteenth international conference on Architectural support for programming languages and operating systems
Neural Acceleration for General-Purpose Approximate Programs
MICRO-45 Proceedings of the 2012 45th Annual IEEE/ACM International Symposium on Microarchitecture
SemFix: program repair via semantic analysis
Proceedings of the 2013 International Conference on Software Engineering
Automatic patch generation learned from human-written patches
Proceedings of the 2013 International Conference on Software Engineering
Optimizing Google's warehouse scale computers: The NUMA experience
HPCA '13 Proceedings of the 2013 IEEE 19th International Symposium on High Performance Computer Architecture (HPCA)
Hi-index | 0.00 |
Modern compilers typically optimize for executable size and speed, rarely exploring non-functional properties such as power efficiency. These properties are often hardware-specific, time-intensive to optimize, and may not be amenable to standard dataflow optimizations. We present a general post-compilation approach called Genetic Optimization Algorithm (GOA), which targets measurable non-functional aspects of software execution in programs that compile to x86 assembly. GOA combines insights from profile-guided optimization, superoptimization, evolutionary computation and mutational robustness. GOA searches for program variants that retain required functional behavior while improving non-functional behavior, using characteristic workloads and predictive modeling to guide the search. The resulting optimizations are validated using physical performance measurements and a larger held-out test suite. Our experimental results on PARSEC benchmark programs show average energy reductions of 20%, both for a large AMD system and a small Intel system, while maintaining program functionality on target workloads.