skip to main content
Department of Computer Science University of Colorado Boulder
cu: home | engineering | mycuinfo | about | cu a-z | search cu | contact cu cs: about | calendar | directory | catalog | schedules | mobile | contact cs
home · events · colloquia · 2003-2004 · 

Colloquium - Calder

ECCR 200

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.

Bradley Calder photo

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.

The Department holds colloquia throughout the Fall and Spring semesters. These colloquia, open to the public, are typically held on Thursday afternoons, but sometimes occur at other times as well. If you would like to receive email notification of upcoming colloquia, subscribe to our Colloquia Mailing List. If you would like to schedule a colloquium, see Colloquium Scheduling.

Sign language interpreters are available upon request. Please contact Stephanie Morris at least five days prior to the colloquium.

See also:
Department of Computer Science
College of Engineering and Applied Science
University of Colorado Boulder
Boulder, CO 80309-0430 USA
Send email to

Engineering Center Office Tower
ECOT 717
FAX +1-303-492-2844
XHTML 1.0/CSS2 ©2012 Regents of the University of Colorado
Privacy · Legal · Trademarks
May 5, 2012 (13:29)