HPS: Hybrid Profiling Support
Hussam Mousa and Chandra Krintz
International Conference on Parallel Architectures and Compilation Techniques
(PACT), St. Louis, MO, Sept 17-21, 2005
Technical Report Version (#2005-08 March, 2005)
Key to understanding and optimizing complex applications, is our ability to
dynamically monitor executing programs with low overhead and high accuracy.
Toward this end, we present HPS, a Hybrid Profiling Support system. HPS
employs a hardware/software approach to program sampling that transparently,
efficiently, and dynamically samples an executing instruction stream. Our
system is an extension and application of Dynamic Instruction Stream Editing (DISE), a hardware technique that macro-expands instructions in the pipeline
decode stage at runtime.
HPS toggles profiling to sample the executing
program as required by the profile consumer, e.g. a dynamic optimizer. Our
system requires few hardware resources and introduces no
``basic'' overhead -- the execution of instructions that triggers profiling.
We use HPS to investigate the tradeoffs between overhead and
accuracy of different profile types as well as different profiling schemes. In
empirically evaluate hot data stream, hot call pair, and hot method
identification using a number of parameterizations of bursty tracing, a
popular sampling scheme used in dynamic optimization systems.