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 · bactac · 2001-2002 · 

BACTAC - Hirzel

ECOT 831

Bursty Tracing: A Framework for Low-Overhead Temporal Profiling
Grad Student, Department of Computer Science

A profile is a report about the run-time behavior of a program, and a profiler is a system that generates a profile during program execution. Profiles are useful for optimization (for example by guiding optimization efforts to hot-spots), for program understanding (for example by pointing out likely invariants), and for dynamic techniques (for example by guiding memory management policies). We describe a low-overhead temporal profiler. Low-overhead profiling is important for dynamic techniques, because their benefits must outweigh the slow-down of profiling. Temporal profiling is important for techniques that use causality in sequences of events, for example by specializing a hot execution path.

A common way to reduce the overhead of profiling is sampling: instead of recording all interesting run-time behavior, sample a small, but representative fraction of it. A common technique to do temporal profiling is tracing instrumentation: modify the code to record information as it executes. We combine sampling and tracing by recording bursts (subsequences) of the trace of all events during program execution.

Our bursty tracing profiler is an extension to the Arnold-Ryder profiling framework. They duplicate the code of the program to get two versions of the code, a checking version and an instrumented version. Most of the time, the checking version is executed; once in a while, the instrumented version is executed to sample a short burst of the trace. Our extension is to allow tracing long bursts that may cross procedure boundaries; Arnold and Ryder did not use their framework for temporal profiling. In addition, we introduce techniques for reducing the overhead of the framework, and we use the framework on optimized x86 binaries instead of Java bytecode. Our bursty tracing profiler is deterministic and implemented in software, making it flexible. It allows setting both the length and the frequency of bursts, so the profile quality and overhead can be freely and dynamically adapted.

This work was done in collaboration with Trishul Chilimbi at Microsoft Research. The profiler was used to build the Endoeus dynamic optimizer that does software prefetching based on hot data streams. This talk is based on a workshop paper, for which a preprint is available.

This will be a practice talk for the
Workshop on Feedback-Directed and Dynamic Optimization.

BACTAC, the Beverage And Chips Tuesday Afternoon Colloquium, is a weekly forum run by graduate students. The goal is provide an informal setting in which anyone can (basically) present anything. In the past, we have had practice talks for conferences and job interviews, research reports, juggle lessons (!), student representative reports, internship discussions, an introduction to ergonomics, and "pay attention to this when you are going to look for job" discussions.

BACTAC is meant to be an informal and social event to promote the interaction among graduate students. BACTAC is typically held every Tuesday, at 3:30pm, in room ECOT 831. Free munchies and drinks are provided.

Please email Caleb Phillips for more information or if you want to be a speaker.

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:44)