skip to main content
10.1145/2541940.2541945acmconferencesArticle/Chapter ViewAbstractPublication PagesasplosConference Proceedingsconference-collections
research-article

Finding the limit: examining the potential and complexity of compilation scheduling for JIT-based runtime systems

Published: 24 February 2014 Publication History

Abstract

This work aims to find out the full potential of compilation scheduling for JIT-based runtime systems. Compilation scheduling determines the order in which the compilation units (e.g., functions) in a program are to be compiled or recompiled. It decides when what versions of the units are ready to run, and hence affects performance. But it has been a largely overlooked direction in JIT-related research, with some fundamental questions left open: How significant compilation scheduling is for performance, how good the scheduling schemes employed by existing runtime systems are, and whether a great potential exists for improvement. This study proves the strong NP-completeness of the problem, proposes a heuristic algorithm that yields near optimal schedules, examines the potential of two current scheduling schemes empirically, and explores the relations with JIT designs. It provides the first principled understanding to the complexity and potential of compilation scheduling, shedding some insights for JIT-based runtime system improvement.

References

[1]
Jikes rvm. http://jikesrvm.org.
[2]
C. Anderson, S. Drossopoulou, and P. Giannini. Towards type inference for javascript. In ECOOP, 2005.
[3]
M. Arnold, S. Fink, D. Grove, M. Hind, and P. F. Sweeney. A survey of adaptive optimization in virtual machines. Proceedings of the IEEE, 92(2), 2005.
[4]
M. Arnold, M. Hind, and B. G. Ryder. Online feedback-directed optimization of Java. In Proceedings of ACM Conference on Object-Oriented Programming Systems, Languages and Applications, pages 111--129, 2002.
[5]
M. Arnold, A. Welc, and V.T. Rajan. Improving virtual machine performance using a cross-run profile repository. In the Conference on Object-Oriented Programming, Systems, Languages, and Applications, pages 297--311, 2005.
[6]
S. M. Blackburn et al. The DaCapo benchmarks: Java benchmarking development and analysis. In Proceedings of ACM SIGPLAN Conference on Object-Oriented Programming Systems, Languages and Applications, October 2006.
[7]
I. Bohm, T. Koch, S. Kyle, B. Franke, and N. Topham. Generalized just-in-time trace compilation using a parallel task farm in a dynamic binary translator. In Proceedings of ACM SIGPLAN Conference on Programming Languages Design and Implementation, 2011.
[8]
M. Burtscher and B. G. Zorn. Hybrid load-value predictors. IEEE Transactions on Computers, 2002.
[9]
J. Castanos, D. Edelsohn, K. Ishizaki, P. Nagpurkar, T. Nakatani, T. Ogasawara, and P. Wu. On the benefits and pitfalls of extending a statically typed language jit compiler for dynamic scripting languages. In OOPSLA, 2012.
[10]
J. Cavazos and M. O'Boyle. Method-specific dynamic compilation using logistic regression. In Proceedings of ACM SIGPLAN Conference on Object-Oriented Programming Systems, Languages and Applications, 2006.
[11]
L. P. Deutsch and A. M. Schiffman. Efficient implementation of the smalltalk-80 system. In POPL, 1984.
[12]
Y. Ding, M. Zhou, Z. Zhao, S. Eisenstat, and X. Shen. The potential and complexity of compilation scheduling in jit-based runtime systems. Technical Report WM-CS-2014-02, College of William and Mary, 2014.
[13]
A. Gal, B. Eich, M. Shaver, D. Anderson, et al. Trace-based just-in-time type specialization for dynamic languages. In Proceedings of the ACM SIGPLAN Conference On Programming Language Design and Implementation, 2009.
[14]
D. Gu and C. Verbrugge. Phase-based adaptive recompilation in a JVM. In Proceedings of the International Symposium on Code Generation and Optimization, pages 24--34, 2008.
[15]
J. Ha, M. Haghighat, S. Cong, and K. S. McKinley. A concurrent trace-based just-in-time compiler for single-threaded javascript. In Workshop on Parallel Execution of Sequential Programs on Multicore Architectures, 2009.
[16]
B. Hacket and S. Guo. Fast and precise hybrid type inference for javascript. In PLDI, 2012.
[17]
U. Holzle and D. Ungar. Reconciling responsiveness with performance in pure object-oriented languages. ACM Transactions on Programming Language Systems, 18(4), 1996.
[18]
S. Hu, R. Bhargava, and L. K. John. The role of return value prediction in exploiting speculative method-level parallelism. Journal of Instruction-Level Parallelism, 2003.
[19]
S. H. Jensen, A. Møller, and P. Thiemann. Type analysis for javascript. In SAS, 2009.
[20]
Jikes rvm project and status.texttt http://http://jikesrvm.org/Project Status.
[21]
T. Kotzmann, C. Wimmer, H. Mossenbock, T. Rodriguez, K. Russell, and D. Cox. Design of the java hotspot client compiler for java 6. Transactions on Architecture and Code Optimization, 5(1), 2008.
[22]
P.A. Kulkarni. Jit compilation policy for modern machines. In Proceedings of the annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, 2011.
[23]
F. Logozzo and H. Venter. Rata: Rapid atomic type analysis by abstract interpretation. In CC, 2010.
[24]
R. Nabinger-Sanchez, J. Amaral, D. Szafron, M. Pirvu, and M. Stoodley. Using machines to learn method-specific compilation strategies. In CGO, 2011.
[25]
F. Nah. Study on tolerable waiting time: How long are web users willing to wait? Behavior and Information Technology, 23(3):153--163, 2004.
[26]
M. A. Namjoshi and P. A. Kulkarni. Novel online profiling for virtual machines. In Proceedings of the International Conference on Virtual Execution Environments (VEE), pages 133--144, 2010.
[27]
M. Paleczny, C. Vick, and C. Click. The java hotspot server compiler. In Symposium on JavaTM Virtual Machine Research and Technology, 2001.
[28]
C. J. Pickett, C. Verbrugge, and A. Kielstra. Adaptive software return value prediction. Technical Report 1, McGill University, 2009.
[29]
V. Reddi, D. Connors, R. Cohn, and M. Smith. Persistent code caching: Exploiting code reuse across executions and applications. In CGO, 2007.
[30]
A. Rushinek and S. Rushinek. What makes users happy? Communications of the ACM, 29(7):594--598, 1986.
[31]
S. Russell and P. Norvig. Artificial Intelligence. Prentice Hall, 2002.
[32]
K. Tian, Y. Jiang, E. Zhang, and X. Shen. An input-centric paradigm for program dynamic optimizations. In the Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA), 2010.
[33]
K. Tian, E. Zhang, and X. Shen. A step towards transparent integration of input-consciousness into dynamic program optimizations. In the Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA), 2011.
[34]
B. Wu, Z. Zhao, X. Shen, Y. Jiang, Y. Gao, and R. Silvera. Exploiting inter-sequence correlations for program behavior prediction. In Proceedings of the annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, 2012.
[35]
T. Yeh and Y. N. Patt. A comparison of dynamic branch predictors that use two levels of branch history. In Proceedings of the 20th Annual International Symposium on Computer Architecture, pages 257--266, May 1993.
[36]
Y. Zhong, X. Shen, and C. Ding. Program locality analysis using reuse distance. ACM Transactions on Programming Languages and Systems, 31(6), 2009.

Cited By

View all
  • (2016)Impact of Intrinsic Profiling Limitations on Effectiveness of Adaptive OptimizationsACM Transactions on Architecture and Code Optimization10.1145/300866113:4(1-26)Online publication date: 12-Dec-2016
  • (2016)CAOSProceedings of the ACM International Conference on Computing Frontiers10.1145/2903150.2903151(110-118)Online publication date: 16-May-2016
  • (2015)JITProf: pinpointing JIT-unfriendly JavaScript codeProceedings of the 2015 10th Joint Meeting on Foundations of Software Engineering10.1145/2786805.2786831(357-368)Online publication date: 30-Aug-2015
  • Show More Cited By

Index Terms

  1. Finding the limit: examining the potential and complexity of compilation scheduling for JIT-based runtime systems

    Recommendations

    Comments

    Information & Contributors

    Information

    Published In

    cover image ACM Conferences
    ASPLOS '14: Proceedings of the 19th international conference on Architectural support for programming languages and operating systems
    February 2014
    780 pages
    ISBN:9781450323055
    DOI:10.1145/2541940
    Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than the author(s) must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected].

    Sponsors

    In-Cooperation

    Publisher

    Association for Computing Machinery

    New York, NY, United States

    Publication History

    Published: 24 February 2014

    Permissions

    Request permissions for this article.

    Check for updates

    Author Tags

    1. compilation order
    2. compilation scheduling
    3. heuristic algorithm
    4. jit
    5. np-completeness
    6. runtime system

    Qualifiers

    • Research-article

    Conference

    ASPLOS '14

    Acceptance Rates

    ASPLOS '14 Paper Acceptance Rate 49 of 217 submissions, 23%;
    Overall Acceptance Rate 535 of 2,713 submissions, 20%

    Upcoming Conference

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • Downloads (Last 12 months)15
    • Downloads (Last 6 weeks)0
    Reflects downloads up to 03 Mar 2025

    Other Metrics

    Citations

    Cited By

    View all
    • (2016)Impact of Intrinsic Profiling Limitations on Effectiveness of Adaptive OptimizationsACM Transactions on Architecture and Code Optimization10.1145/300866113:4(1-26)Online publication date: 12-Dec-2016
    • (2016)CAOSProceedings of the ACM International Conference on Computing Frontiers10.1145/2903150.2903151(110-118)Online publication date: 16-May-2016
    • (2015)JITProf: pinpointing JIT-unfriendly JavaScript codeProceedings of the 2015 10th Joint Meeting on Foundations of Software Engineering10.1145/2786805.2786831(357-368)Online publication date: 30-Aug-2015
    • (2015)Exploration of the Relationship Between Just-in-Time Compilation Policy and Number of CoresAlgorithms and Architectures for Parallel Processing10.1007/978-3-319-27140-8_21(293-307)Online publication date: 16-Dec-2015
    • (2014)Call sequence prediction through probabilistic calling automataACM SIGPLAN Notices10.1145/2714064.266022149:10(745-762)Online publication date: 15-Oct-2014
    • (2014)Call sequence prediction through probabilistic calling automataProceedings of the 2014 ACM International Conference on Object Oriented Programming Systems Languages & Applications10.1145/2660193.2660221(745-762)Online publication date: 15-Oct-2014
    • (2024)Language-Agnostic Compilation Scheduling Algorithms for Partial AOT Compilations2024 34th International Conference on Collaborative Advances in Software and COmputiNg (CASCON)10.1109/CASCON62161.2024.10837761(1-10)Online publication date: 11-Nov-2024

    View Options

    Login options

    View options

    PDF

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader

    Figures

    Tables

    Media

    Share

    Share

    Share this Publication link

    Share on social media