Online phase detection algorithms

Today's virtual machines (VMs) dynamically optimize an application as it is executing, often employing optimizations that are specialized for the current execution profile. An online phase detector determines when an executing program is in a stable period of program execution (a phase) or is in transition. A VM using an online phase detector can apply specialized optimizations during a phase or reconsider optimization decisions between phases. Unfortunately, extant approaches to detecting phase behavior rely on either offline profiling, hardware support, or are targeted toward a particular optimization. In this work, we focus on the enabling technology of online phase detection. More specifically, we contribute (a) a novel framework for online phase detection, (b) multiple instantiations of the framework that produce novel online phase detection algorithms, (c) a novel client- and machine-independent baseline methodology for evaluating the accuracy of an online phase detector, (d) a metric to compare online detectors to this baseline, and (e) a detailed empirical evaluation, using Java applications, of the accuracy of the numerous phase detectors.

[1]  Rajesh K. Gupta,et al.  Dynamic phase analysis for cycle-close trace generation , 2005, 2005 Third IEEE/ACM/IFIP International Conference on Hardware/Software Codesign and System Synthesis (CODES+ISSS'05).

[2]  Martin C. Rinard,et al.  Dynamic feedback: an effective technique for adaptive computing , 1997, PLDI '97.

[3]  Chandra Krintz,et al.  Phase-aware remote profiling , 2005, International Symposium on Code Generation and Optimization.

[4]  Michael Franz,et al.  Continuous program optimization , 1999 .

[5]  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..

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

[7]  Cliff Click,et al.  The Java HotSpot Server Compiler , 2001, Java Virtual Machine Research and Technology Symposium.

[8]  Stephen J. Fink,et al.  The Jalapeño virtual machine , 2000, IBM Syst. J..

[9]  Cliff Click,et al.  The java hotspot TM server compiler , 2001 .

[10]  Elliot Berk,et al.  JLex: A lexical analyzer generator for Java , 2004 .

[11]  Wei-Chung Hsu,et al.  Region monitoring for local phase detection in dynamic optimization systems , 2006, International Symposium on Code Generation and Optimization (CGO'06).

[12]  James E. Smith,et al.  Managing multi-configuration hardware via dynamic working set analysis , 2002, ISCA.

[13]  James E. Smith,et al.  Comparing Program Phase Detection Techniques , 2003, MICRO.

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

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

[16]  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.

[17]  Brad Calder,et al.  Selecting software phase markers with code structure analysis , 2006, International Symposium on Code Generation and Optimization (CGO'06).

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

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

[20]  Martin Hirzel,et al.  Dynamic hot data stream prefetching for general-purpose programs , 2002, PLDI '02.

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

[22]  Gregory R. Ganger,et al.  Designing computer systems with MEMS-based storage , 2000, ASPLOS.

[23]  Alan P. Batson,et al.  Characteristics of program localities , 1976, CACM.

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

[25]  John C. Gyllenhaal,et al.  A hardware-driven profiling scheme for identifying program hot spots to support runtime optimization , 1999, ISCA.

[26]  Brad Calder,et al.  Automatically characterizing large scale program behavior , 2002, ASPLOS X.

[27]  Wei-Chung Hsu,et al.  Design and Implementation of a Lightweight Dynamic Optimization System , 2004, J. Instr. Level Parallelism.

[28]  Matthew Arnold,et al.  Adaptive optimization in the Jalapeño JVM , 2000, OOPSLA '00.

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

[30]  Chandra Krintz,et al.  Visualization and analysis of phased behavior in Java programs , 2004, PPPJ.

[31]  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..