11/27/2001 3:30pm-5:00pm 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.
|