home · mobile · calendar · colloquia · 2003-2004 · 

Colloquium - Calder

Discovering and Exploiting Program Phases
University of California, San Diego

In a single second a modern processor can execute billions of instructions, and in that second a program's behavior can change many times. Some programs drastically change behavior, switching back and forth between periods of high and low performance, yet most systems are designed and optimized for "average" system behavior. Instead of assuming an average behavior, we show how to model time varying program behavior as a series of phases.

This talk is an overview of our recent work on analyzing the phase behavior in programs, both off-line (using clustering algorithms from machine learning) and at run-time (using a small hardware approximation of our off-line technique). We define a phase as the set of sections of a program's execution that have similar behavior. By dividing the program's execution into these sets, we enable an emerging area of research that aims to target optimizations to specific program phases rather than simply average case behavior. The key to our approach is to identify similar behavior by tracking only the way the code is exercised. We show two applications of this technology. Our off-line phase analysis enables a new tool, SimPoint, to accurately guide architecture simulation to the most important parts of a program's execution. The on-line analysis is used to enable phase-based dynamic optimizations, and as the foundation of a unified prediction scheme that can forecast program behavior far into the future.

Brad Calder joined UC San Diego in 1997, and is an Associate Professor of Computer Science and Engineering. His current research focuses on phase-based analysis, network processors, simulation methodology, and hardware/software solutions to aid program correctness. He is co-editor-in-chief of the ACM Transactions on Computer Architecture and Code Optimization. Brad is a co-founder a desktop distributed computing (grid) company called Entropia, where he was the Director of Engineering from 2000 to 2002. In 1996, he co-founded the startup TracePoint, which built performance analysis tools using x86 binary modification technology. In 1995, he worked as a Principal Engineer at Digital Equipment Corporation's Western Research Lab in Palo Alto. Brad received his PhD in Computer Science from the University of Colorado Boulder in 1995, and his undergraduate degrees from the University of Washington in 1991.

Hosted by Dirk Grunwald.

Department of Computer Science
University of Colorado Boulder
Boulder, CO 80309-0430 USA
May 5, 2012 (14:13)