Most programs are repetitive, where similar behavior can be seen at different execution times. Proposed algorithms automatically group these similar intervals of execution into phases, where the intervals in a phase have homogeneous behavior and similar resource requirements. These prior techniques have focused on using fixed intervals for finding phase behavior. Using fixed length intervals can make finding the true periodic repeating phase behavior difficult, since the fixed length intervals can be out of sync with the size of the ideal phase behavior. In addition, focusing only on a single fixed interval size limits the phase behavior to the phase behavior seen at that interval size, when in reality there is a whole hierarchy of phase behavior at many different intervals sizes. In this paper, we present an automated approach for breaking the program's execution up into variable length intervals that match the phase behavior of the program. We then provide an algorithm for creating a hierarchy of variable length intervals and use this hierarchy to expose a program's phase behavior from small to large time scales.
The authors of these documents have submitted their reports to this technical report series for the purpose of non-commercial dissemination of scientific work. The reports are copyrighted by the authors, and their existence in electronic format does not imply that the authors have relinquished any rights. You may copy a report for scholarly, non-commercial purposes, such as research or instruction, provided that you agree to respect the author's copyright. For information concerning the use of this document for other than research or instructional purposes, contact the authors. Other information concerning this technical report series can be obtained from the Computer Science and Engineering Department at the University of California at San Diego, firstname.lastname@example.org.
[ Search ]