Detecting repetitive program behaviour from hardware data

Detecting repetitive “phases” in program execution is helpful for program understanding, runtime optimization, and for reducing simulation/profiling workload. The nature of the phases that may be found, however, depend on the kinds of programs, as well how programs interact with the underlying hardware. We present a technique to detect long term and variable length repetitive program behaviour by monitoring microarchitecture-level hardware events. Our approach results in high quality repetitive phase detection; we propose quantitative methods of evaluation, and show that our design accurately calculates phases with a 92% “confidence” level. We further validate our design through an implementation and analysis of phase-driven, runtime profiling, showing a reduction of about 50% of the profiling workload while still preserving 94% accuracy in the profiling results. Our work confirms that it is practical to detect high-level phases from lightweight hardware monitoring, and to use such information to improve runtime performance.

[1]  Clark Verbrugge A Survey of Phase Analysis: Techniques, Evaluation and Applications , 2006 .

[2]  Brad Calder,et al.  Phase tracking and prediction , 2003, ISCA '03.

[3]  Matthias Hauswirth,et al.  Using Hardware Performance Monitors to Understand the Behavior of Java Applications , 2004, Virtual Machine Research and Technology Symposium.

[4]  Bowen Alpern,et al.  Implementing jalapeño in Java , 1999, OOPSLA '99.

[5]  Michael Franz,et al.  Continuous program optimization: A case study , 2003, TOPL.

[6]  V. T. Rajan,et al.  Phase Shift Detection: A Problem Classification , 2003 .

[7]  S. F. Hummel,et al.  Implementing Jalape~ No in Java , 1999 .

[8]  Wen-mei W. Hwu,et al.  Vacuum packing: extracting hardware-detected program phases for post-link optimization , 2002, MICRO.

[9]  A.S. Dhodapkar,et al.  Dynamic microarchitecture adaptation via co-designed virtual machines , 2002, 2002 IEEE International Solid-State Circuits Conference. Digest of Technical Papers (Cat. No.02CH37315).

[10]  Dayong Gu,et al.  Relative factors in performance analysis of Java virtual machines , 2006, VEE '06.

[11]  J. MacQueen Some methods for classification and analysis of multivariate observations , 1967 .

[12]  Chen Ding,et al.  Locality phase prediction , 2004, ASPLOS XI.

[13]  Sandhya Dwarkadas,et al.  Characterizing and predicting program behavior and its variability , 2003, 2003 12th International Conference on Parallel Architectures and Compilation Techniques.

[14]  Matthew Arnold,et al.  Online feedback-directed optimization of Java , 2002, OOPSLA '02.

[15]  Daniel A. Jim Code Placement for Improving Dynamic Branch Prediction Accuracy , 2005 .

[16]  Brad Calder,et al.  The Strong correlation Between Code Signatures and Performance , 2005, IEEE International Symposium on Performance Analysis of Systems and Software, 2005. ISPASS 2005..

[17]  Lieven Eeckhout,et al.  Method-level phase behavior in java workloads , 2004, OOPSLA.

[18]  Rajeev Balasubramonian,et al.  Memory hierarchy reconfiguration for energy and performance in general-purpose processor architectures , 2000, MICRO 33.

[19]  Brad Calder,et al.  Motivation for Variable Length Intervals and Hierarchical Phase Behavior , 2005, IEEE International Symposium on Performance Analysis of Systems and Software, 2005. ISPASS 2005..

[20]  Weng-Fai Wong,et al.  Compiler orchestrated prefetching via speculation and predication , 2004, ASPLOS XI.

[21]  Wen-mei W. Hwu,et al.  Vacuum packing: extracting hardware-detected program phases for post-link optimization , 2002, 35th Annual IEEE/ACM International Symposium on Microarchitecture, 2002. (MICRO-35). Proceedings..

[22]  Toshiaki Yasue,et al.  A dynamic optimization framework for a Java just-in-time compiler , 2001, OOPSLA '01.

[23]  Brad Calder,et al.  Basic block distribution analysis to find periodic behavior and simulation points in applications , 2001, Proceedings 2001 International Conference on Parallel Architectures and Compilation Techniques.

[24]  T. Sherwood,et al.  Phase tracking and prediction , 2003, 30th Annual International Symposium on Computer Architecture, 2003. Proceedings..

[25]  Brian T. Lewis,et al.  The Open Runtime Platform: a flexible high-performance managed runtime environment: Research Articles , 2005 .

[26]  Clark Verbrugge,et al.  Return Value Prediction in a Java Virtual Machine , 2004 .