VISTA: VPO interactive system for tuning applications

  • Authors:
  • Prasad Kulkarni;Wankang Zhao;Stephen Hines;David Whalley;Xin Yuan;Robert van Engelen;Kyle Gallivan;Jason Hiser;Jack Davidson;Baosheng Cai;Mark Bailey;Hwashin Moon;Kyunghwan Cho;Yunheung Paek

  • Affiliations:
  • Florida State University, Tallahassee, FL;Florida State University, Tallahassee, FL;Florida State University, Tallahassee, FL;Florida State University, Tallahassee, FL;Florida State University, Tallahassee, FL;Florida State University, Tallahassee, FL;Florida State University, Tallahassee, FL;University of Virginia, Charlottesville, VA;University of Virginia, Charlottesville, VA;Oracle Corporation, Redwood City, CA;Hamilton College, Clinton, NY;Korea Advanced Institute of Science & Technology, Daejeon, Korea;Korea Advanced Institute of Science & Technology, Daejeon, Korea;Seoul National University, Seoul, Korea

  • Venue:
  • ACM Transactions on Embedded Computing Systems (TECS)
  • Year:
  • 2006

Quantified Score

Hi-index 0.00

Visualization

Abstract

Software designers face many challenges when developing applications for embedded systems. One major challenge is meeting the conflicting constraints of speed, code size, and power consumption. Embedded application developers often resort to hand-coded assembly language to meet these constraints since traditional optimizing compiler technology is usually of little help in addressing this challenge. The results are software systems that are not portable, less robust, and more costly to develop and maintain. Another limitation is that compilers traditionally apply the optimizations to a program in a fixed order. However, it has long been known that a single ordering of optimization phases will not produce the best code for every application. In fact, the smallest unit of compilation in most compilers is typically a function and the programmer has no control over the code improvement process other than setting flags to enable or disable certain optimization phases. This paper describes a new code improvement paradigm implemented in a system called VISTA that can help achieve the cost/performance trade-offs that embedded applications demand. The VISTA system opens the code improvement process and gives the application programmer, when necessary, the ability to finely control it. VISTA also provides support for finding effective sequences of optimization phases. This support includes the ability to interactively get static and dynamic performance information, which can be used by the developer to steer the code improvement process. This performance information is also internally used by VISTA for automatically selecting the best optimization sequence from several attempted. One such feature is the use of a genetic algorithm to search for the most efficient sequence based on specified fitness criteria. We include a number of experimental results that evaluate the effectiveness of using a genetic algorithm in VISTA to find effective optimization phase sequences.