Nothing Special   »   [go: up one dir, main page]

skip to main content
10.1109/CGO.2006.26acmconferencesArticle/Chapter ViewAbstractPublication PagescgoConference Proceedingsconference-collections
Article

Online Phase Detection Algorithms

Published: 26 March 2006 Publication History

Abstract

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.

References

[1]
{1} B. Alpern, C. R. Attanasio, J. J. Barton, M. G. Burke, P. Cheng, J.-D. Choi, A. Cocchi, S. J. Fink, D. Grove, M. Hind, S. F. Hummel, D. Lieber, V. Litvinov, M. F. Mergen, T. Ngo, J. R. Russell, V. Sarkar, M. J. Serrano, J. C. Shepherd, S. E. Smith, V. C. Sreedhar, H. Srinivasan, and J. Whaley. The Jalapeño virtual machine. IBM Systems Journal, 39(1):211-238, Feb. 2000.
[2]
{2} M. Arnold, S. Fink, D. Grove, M. Hind, and P. F. Sweeney. Adaptive optimization in the Jalapeño JVM. ACM SIGPLAN Notices, 35(10):47-65, Oct. 2000. In Conference on Object-Oriented Programming, Systems, Languages and Applications (OOPSLA).
[3]
{3} M. Arnold, M. Hind, and B. G. Ryder. Online feedback-directed optimization of Java. ACM SIGPLAN Notices, 37(11):111-129, Nov. 2002. In Conference on Object-Oriented Programming, Systems, Languages and Applications (OOPSLA).
[4]
{4} V. Bala, E. Duesterwald, and S. Banerjia. Dynamo: a transparent dynamic optimization system. ACM SIGPLAN Notices , 35(5):1-12, May 2000. In Conference on Programming Language Design and Implementation (PLDI).
[5]
{5} R. D. Barnes, E. M. Nystrom, M. C. Merten, and W. mei W. Hwu. Vacuum packing: Extracting hardware-detected program phases for post-link optimization. In the 35th International Symposium on Microarchitecture, pages 233- 244, Nov. 2002.
[6]
{6} E. Berk. Jlex: A lexical analyzer generator for Java. www.cs.princeton.edu/appel/modern/java/JLex.
[7]
{7} T. M. Chilimbi and M. Hirzel. Dynamic hot data stream prefetching for general-purpose programs. ACM SIGPLAN Notices, 37(5):199-209, May 2002. In Conference on Programming Language Design and Implementation (PLDI).
[8]
{8} A. Das, J. Lu, and W.-C. Hsu. Region monitoring for local phase detection in dynamic optimization systems. In ACM Conference on Code Generation and Optimization, Mar. 2006.
[9]
{9} A. S. Dhodapkar and J. E. Smith. Managing multiconfiguration hardware via dynamic working set analysis. In 29th Annual International Symposium on Computer Architecture , pages 233-244, May 2002.
[10]
{10} A. S. Dhodapkar and J. E. Smith. Comparing program phase detection techniques. In the 36th International Symposium on Microarchitecture, pages 217-227, Dec. 2003.
[11]
{11} P. C. Diniz and M. C. Rinard. Dynamic feedback: An effective technique for adaptive computing. ACM SIGPLAN Notices, 32(5):71-84, May 1997. In Conference on Programming Language Design and Implementation (PLDI).
[12]
{12} E. Duesterwald, C. Cascaval, and S. Dwarkadas. Characterizing and predicting program behavior and its variability. In International Conference on Parallel Achitecture and Compilation Techniques, Sept. 2003.
[13]
{13} A. Georges, D. Buytaert, L. Eeckhout, and K. De Bosschere. Method-level phase behavior in Java workloads. In Conference on Object-Oriented Programming Systems, Languages, and Applications, Oct. 2004.
[14]
{14} M. Hind, V. Rajan, and P. F. Sweeney. Phase detection: A problem classification. Technical Report 22887, IBM Research, Aug. 2003.
[15]
{15} Jikes Research Virtual Machine (RVM). http://jikesrvm.sourceforge.net.
[16]
{16} T. Kistler and M. Franz. Continuous program optimization: A case study. ACM Transactions on Programming Languages and Systems, 25(4):500-548, July 2003.
[17]
{17} T. P. Kistler. Continuous Program Optimization. PhD thesis, University of California, Irvine, 1999.
[18]
{18} J. Lau, E. Perelman, and B. Calder. Selecting software phase markers with code structure analysis. In ACM Conference on Code Generation and Optimization, Mar. 2006.
[19]
{19} J. Lau, E. Perelman, G. Hamerly, T. Sherwood, and B. Calder. Motivation for variable length intervals and hierarchical phase behavior. In IEEE International Symposium on Performance Analysis of Systems and Software, Mar. 2005.
[20]
{20} J. Lau, J. Sampson, E. Perelman, G. Hamerly, and B. Calder. The strong correlation between code signatures and performance. In International Symposium on Performance Analysis of Systems and Software (ISPASS), Mar. 2005.
[21]
{21} J. Lu, H. Chen, P.-C. Yew, and W.-C. Hsu. Design and implementation of a lightweighted dynamic optimization system. Journal of Instruction-Level Parallelism, 6, 2004.
[22]
{22} A. Madison and A. P. Batson. Characteristics of program localities. Communications of the ACM, 19(5):285-294, May 1976.
[23]
{23} M. C. Merten, A. R. Trick, C. N. George, J. C. Gyllenhaal, and W. mei W. Hwu. A hardware-driven profiling scheme for identifying program hot spots to support runtime optimization. In International Symposium on Computer Architecture , June 1999.
[24]
{24} P. Nagpurkar and C. Krintz. Visualization and analysis of phased behavior in Java programs. In ACM Principles and Practices of Programming in Java, June 2004.
[25]
{25} P. Nagpurkar, C. Krintz, and T. Sherwood. Phase-aware remote profiling. In ACM Conference on Code Generation and Optimization, Mar. 2005.
[26]
{26} M. Paleczny, C. Vick, and C. Click. The Java Hotspot server compiler. In Java Virtual Machine Research and Technology Symposium (JVM), pages 1-12, Apr. 2001.
[27]
{27} C. Pereira, J. Lau, B. Calder, and R. Gupta. Dynamic phase analysis for cycle-close trace generation. In International Conference on Hardware/Software Codesign and System Synthesis, Sept. 2005.
[28]
{28} The phoenix framework from microsoft research. http://research.microsoft.com/Phoenix/technical.aspx.
[29]
{29} X. Shen, Y. Zhong, and C. Ding. Locality phase prediction. In Eleventh International Conference on Architectural Support for Programming Languages and Operating Systems, Nov. 2004.
[30]
{30} T. Sherwood, E. Perelman, and B. Calder. Basic block distribution analysis to find periodic behavior and simulation points in applications. In International Conference on Parallel Architectures and Compilation Techniques, Sept. 2001.
[31]
{31} T. Sherwood, E. Perelman, G. Hamerly, and B. Calder. Automatically characterizing large scale program behavior. In Tenth International Conference on Architectural Support for Programming Languages and Operating Systems, Oct. 2002.
[32]
{32} T. Sherwood, S. Sair, and B. Calder. Phase tracking and prediction. In 30th Annual International Symposium on Computer Architecture, pages 336-349, June 2003.
[33]
{33} T. Suganuma, T. Yasue, M. Kawahito, H. Komatsu, and T. Nakatani. A dynamic optimization framework for a Java just-in-time compiler. ACM SIGPLAN Notices, 36(11):180-195, Nov. 2001. In Conference on Object-Oriented Programming, Systems, Languages and Applications (OOPSLA).
[34]
{34} The Standard Performance Evaluation Corporation. SPEC JVM 1998. http://www.spec.org/osg/jvm98, 2000.

Cited By

View all
  • (2019)Performance of Memory Virtualization Using Global Memory Resource BalancingInternational Journal of Cloud Applications and Computing10.4018/IJCAC.20190101029:1(16-32)Online publication date: 1-Jan-2019
  • (2019)Evaluating the effectiveness of program data features for guiding memory managementProceedings of the International Symposium on Memory Systems10.1145/3357526.3357537(383-395)Online publication date: 30-Sep-2019
  • (2018)Run-time program-specific phase prediction for python programsProceedings of the 15th International Conference on Managed Languages & Runtimes10.1145/3237009.3237011(1-10)Online publication date: 12-Sep-2018
  • Show More Cited By

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image ACM Conferences
CGO '06: Proceedings of the International Symposium on Code Generation and Optimization
March 2006
347 pages
ISBN:0769524990

Sponsors

Publisher

IEEE Computer Society

United States

Publication History

Published: 26 March 2006

Check for updates

Qualifiers

  • Article

Conference

CGO06

Acceptance Rates

CGO '06 Paper Acceptance Rate 29 of 80 submissions, 36%;
Overall Acceptance Rate 312 of 1,061 submissions, 29%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)1
  • Downloads (Last 6 weeks)0
Reflects downloads up to 16 Nov 2024

Other Metrics

Citations

Cited By

View all
  • (2019)Performance of Memory Virtualization Using Global Memory Resource BalancingInternational Journal of Cloud Applications and Computing10.4018/IJCAC.20190101029:1(16-32)Online publication date: 1-Jan-2019
  • (2019)Evaluating the effectiveness of program data features for guiding memory managementProceedings of the International Symposium on Memory Systems10.1145/3357526.3357537(383-395)Online publication date: 30-Sep-2019
  • (2018)Run-time program-specific phase prediction for python programsProceedings of the 15th International Conference on Managed Languages & Runtimes10.1145/3237009.3237011(1-10)Online publication date: 12-Sep-2018
  • (2016)A Reconfiguration Algorithm for Power-Aware Parallel ApplicationsACM Transactions on Architecture and Code Optimization10.1145/300405413:4(1-25)Online publication date: 2-Dec-2016
  • (2016)Real-Time Program-Specific Phase Change Detection for Java ProgramsProceedings of the 13th International Conference on Principles and Practices of Programming on the Java Platform: Virtual Machines, Languages, and Tools10.1145/2972206.2972221(1-11)Online publication date: 29-Aug-2016
  • (2016)CAOSProceedings of the ACM International Conference on Computing Frontiers10.1145/2903150.2903151(110-118)Online publication date: 16-May-2016
  • (2012)Compilation queuing and graph caching for dynamic compilersProceedings of the sixth ACM workshop on Virtual machines and intermediate languages10.1145/2414740.2414750(49-58)Online publication date: 21-Oct-2012
  • (2012)Dynamically dispatching speculative threads to improve sequential executionACM Transactions on Architecture and Code Optimization10.1145/2355585.23555869:3(1-31)Online publication date: 5-Oct-2012
  • (2012)Phase guided profiling for fast cache modelingProceedings of the Tenth International Symposium on Code Generation and Optimization10.1145/2259016.2259040(175-185)Online publication date: 31-Mar-2012
  • (2012)VM Economics for Java Cloud ComputingProceedings of the 2012 12th IEEE/ACM International Symposium on Cluster, Cloud and Grid Computing (ccgrid 2012)10.1109/CCGrid.2012.121(723-728)Online publication date: 13-May-2012
  • Show More Cited By

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media