GGrantIndex
← Search

NGS: Collaborative Research: Adapting Program Code Continuously and Adaptively

$660,538FY2003CSENSF

University Of Pittsburgh, Pittsburgh PA

Investigators

Abstract

Much of the past and recent research in program optimization has focused on developing new algorithms to perform a particular optimization or transformation. Indeed, over the previous decade the compiler research community has developed sophisticated, powerful optimization algorithms for a variety of code improvements: register allocation and assignment, common subexpression elimination, partial redundancy elimination, loop optimizations (e.g., loop fusion, loop unrolling, loop interchange, etc.), code scheduling, and function inlining to name a few. While there are still avenues of promising research for particular optimizations, we are at the point where the performance gains of a new or improved optimization algorithm is usually small?an improvement of a few percent is typical. Today?s challenge for optimization research is to develop new techniques and approaches that yield performance improvements that go beyond today?s small single digit improvements. In this research, we address this challenge by investigating and developing an innovative framework and system for continuously and adaptively applying optimizations. Our system, the Continuous Compiler (CoCo), applies optimizations both statically at compile-time and dynamically at run-time using optimization plans developed at compile time and adapted at run time. Rather than focusing on developing new optimization algorithms (e.g., a new register allocation algorithm, a new loop interchange algorithm) or improving existing optimizations (e.g., better coloring heuristics, better placement algorithms), the proposed research focuses on understanding the interaction of existing optimizations and the efficacy of static and dynamic optimizations. Using this knowledge along with information about the application gathered by static analysis, profile information and monitoring, CoCo will determine how to apply a suite of optimizations so that the optimizations work in concert to yield the best improvements.

View original record on NSF Award Search →