ETAS 2005 Tutorial

When: Sunday, April 3, 2005, afternoon

Title: Dynamic Compilation and Adaptive Optimization in Virtual Machines

Presenter: Michael Hind

Authors: Stephen Fink, David Grove, Michael Hind, IBM T.J. Watson Research Center

Abstract:

The past decade has witnessed the widespread adoption of programming languages designed to execute on virtual machines, such as the Java and C# programming language. However, such languages face significant performance challenges beyond those confronted by traditional languages. First, portable program representations and dynamic language features, force the deferral of most optimizations until runtime, inducing runtime optimization overhead. Second, modular program representations preclude many forms of whole-program interprocedural optimization. Third, virtual machines incur additional costs for runtime services such as security guarantees and automatic memory management. To address these challenges, mainstream virtual machine implementations include substantial infrastructure for online profiling, dynamic compilation, and feedback-directed optimization. As a result, adaptive optimization has begun to mature as a widespread production-level technology.

This tutorial will survey the state-of-the-art in the areas of dynamic compilation and adaptive optimization in virtual machines. Dynamic compilation is the process of dynamically optimizing a portable representation, such as Java bytecodes, into native code. Adaptive optimization is the online decision process that determines the overall strategy for profiling and employing dynamic compilation. In addition to surveying the state-of-the-art, this tutorial will also debunk several misconceptions about these two topics, such as

Biographies:

Stephen Fink received the M.S and Ph.D. degrees from the University of California, San Diego in 1994 and 1998, respectively. In 1998, Stephen became a Research Staff Member in the Software Technology Department at the IBM T.J. Watson Research Center. He was a member of the team that produced the Jikes Research Virtual Machine, and is currently investigating the application of static program analysis to Enterprise Java Beans. His research interests include programming language implementation techniques, program analysis, and parallel and scientific computation. Stephen has given several presentations and tutorials at top conferences and universities.

David Grove received his M.S. and Ph.D. degrees from the University of Washington in 1994 and 1998, respectively. While at Washington, Dave worked on the Vortex compiler, a whole-program optimizer for object-oriented languages. Dave's PhD research was on call graph construction algorithms for object-oriented languages and their application for program optimization. In 1998, Dave became a Research Staff Member in the Software Technology Department at the IBM T.J. Watson Research Center. He is one of the lead implementers of Jikes RVM, focusing on the adaptive optimization system, optimizing compiler, and the interface between the virtual machine and the compilers. His research interests include program language design and implementation, virtual machines, and adaptive optimization. Dave has given many presentations and tutorials at top conferences and universities.

Michael Hind received the M.S. and Ph.D. degrees from New York University in 1991. From 1992-1998, Michael was a professor of computer science at the State University of New York at New Paltz. In 1998, Michael became a Research Staff Member in the Software Technology Department at the IBM T.J. Watson Research Center, working on the Jalapeno project, the project that produced the open source Jikes RVM. In 2000, he became the manager of the Dynamic Optimization Group at IBM Research. His research interests include program analysis, adaptive optimization, and memory latency issues. Michael has served on several program committees, and given invited talks and tutorials at several conferences and universities.