home · mobile · calendar · bactac · 2001-2002 · 

BACTAC - Hirzel

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.

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