Techniques and tools for dynamic optimization

Traditional code optimizers have produced significant performance improvements over the past forty years. While promising avenues of research still exist, traditional static and profiling techniques have reached the point of diminishing returns. The main problem is that these approaches have only a limited view of the program and have difficulty taking advantage of the actual run-time behavior of a program. We are addressing this problem through the development of a dynamic optimization system suited for aggressive optimization - using the full power of the most beneficial optimizations. We have designed our optimizer to operate using a software dynamic translation (SDT) execution system. Difficult challenges in this research include reducing SDT overhead and determining what optimizations to apply and where in the code to apply them. Another challenge is having the necessary tools to ensure the reliability of software that is dynamically optimized. In this paper, we describe our efforts in reducing overhead in SDT and efficient techniques for instrumenting the application code. We also describe our approach to determine what and where an optimization should be applied. We discuss other fundamental issues in developing a dynamic optimizer and finally present a basic debugger for SDT systems

[1]  Michael D. Smith,et al.  Improving region selection in dynamic optimization systems , 2005, 38th Annual IEEE/ACM International Symposium on Microarchitecture (MICRO'05).

[2]  Mary Lou Soffa,et al.  Tdb: a source-level debugger for dynamically translated programs , 2005, AADEBUG'05.

[3]  Mary Lou Soffa,et al.  Instrumentation in software dynamic translators for self-managed systems , 2004, WOSS '04.

[4]  Jack W. Davidson,et al.  Evaluating fragment construction policies for SDT systems , 2006, VEE '06.

[5]  Chau-Wen Tseng,et al.  Improving data locality with loop transformations , 1996, TOPL.

[6]  Jack W. Davidson,et al.  Strata: A Software Dynamic Translation Infrastructure , 2001 .

[7]  Derek Bruening,et al.  An infrastructure for adaptive dynamic optimization , 2003, International Symposium on Code Generation and Optimization, 2003. CGO 2003..

[8]  David F. Bacon,et al.  Compiler transformations for high-performance computing , 1994, CSUR.

[9]  Mary Lou Soffa,et al.  Retargetable and reconfigurable software dynamic translation , 2003, International Symposium on Code Generation and Optimization, 2003. CGO 2003..

[10]  Harish Patil,et al.  Pin: building customized program analysis tools with dynamic instrumentation , 2005, PLDI '05.

[11]  Mary Lou Soffa,et al.  Low overhead program monitoring and profiling , 2005, PASTE '05.

[12]  E. Duesterwald,et al.  Software profiling for hot path prediction: less is more , 2000, SIGP.

[13]  Mary Lou Soffa,et al.  A model-based framework: an approach for profit-driven optimization , 2005, International Symposium on Code Generation and Optimization.

[14]  Mary Lou Soffa,et al.  Predicting the impact of optimizations for embedded systems , 2003 .