skip to main content
research-article

Adaptive optimization in the Jalapeno JVM

Published:20 May 2011Publication History
Skip Abstract Section

Abstract

Future high-performance virtual machines will improve performance through sophisticated online feedback-directed optimizations. This paper presents the architecture of the Jalapeno Adaptive Optimization System, a system to support leading-edge virtual machine technology and enable ongoing research on online feedback-directed optimizations. We describe the extensible system architecture, based on a federation of threads with asynchronous communication. We present an implementation of the general architecture that supports adaptive multi-level optimization based purely on statistical sampling. We empirically demonstrate that this profiling technique has low overhead and can improve startup and steady-state performance, even without the presence of online feedback-directed optimizations. The paper also describes and evaluates an online feedback-directed inlining optimization based on statistical edge sampling. The system is written completely in Java, applying the described techniques not only to application code and standard libraries, but also to the virtual machine itself.

References

  1. A.-R. Adl-Tabatabai, M. Cierniak, C.-Y. Lueh, V. M. Parikh, and J . M. Stichnoth. Fast, effective code generation in a Just-in-Time Java compiler. In Proceedings of the ACM SIGPLAN'98 Conference on Programming Language Design and Implementation (PLDI), pages 280--290, Montreal, Canada, 17-19 June 1998. SIGPLAN Notices 33(5), May 1998. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. 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 Jalapeno virtual machine. IBM Sy8tems Journal, 39(1), 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. B. Alpern, D. Attanasio, J. J . Barton, A. Cocchi, D. Lieber, S. Smith, and T. Ngo. Implementing Jalapeno in Java. In ACM Conference on Object-Oriented Programming Systems, Languages, and Applications, pages 314--324, 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. J . M. Andersen, L. M. Berc, J . Dean, S. Ghemawat, M. R. Henzinger, S.-T. A. Leung, R. L. Sites, M. T . Vandevoorde, C. A. Waldspurger, and W. E. Weihl. Continuous profiling: Where have all the cycles gone? Technical Note 1997-016a, Digital Systems Research Center, www.research.digital.com/SRC. Sept. 1997.Google ScholarGoogle Scholar
  5. M. Arnold, S. Fink, V. Sarkar, and P. Sweeney. A comparative study of static and dynamic heuristics for inlining. In ACM SIGPLAN Workshop on Dynamic and Adaptive Compilation and Optimization, 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. M. Arnold, M. Hind, and B. G. Ryder. An empirical study of selective optimization. In 18th International Workshop on Languages and Compilers for Parallel Computing, Aug. 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. M. Arnold and P. F. Sweeney. Approximating the calling context tree via sampling. Technical Report RC 21789, IBM T.J. Watson Research Center, July 2000.Google ScholarGoogle Scholar
  8. J. Auslander, M. Philipose, C. Chambers, S. J . Eggers, and B. N. Bershad. Fast, effective dynamic compilation. In Proceedings of the ACM SIGPLAN '96 Conference on Programming Language Design and Implementation, pages 149--159, Philadelphia, Pennsylvania, 21-24 May 1996. SIGPLAN Notices 31(5), May 1996. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. V. Bala, E. Duesterwald, and S. Banerjia. Dynamo: A transparent dynamic optimization system. In SIGPLAN 2000 Conference on Programming Language Design and Implementation, June 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. T . Ball and J . R. Lams. Branch prediction for free. In Proceedings of the ACM SIGPLAN'98 Conference on Programming Language Design and Implementation (PLDI), pages 300--313, Albuquerque, New Mexico, 23-25 June 1993. SIGPLAN Notices 28(6), June 1993. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. R. Bodik, R. Gupta, and V. Sarkar. ABCD: Eliminating Array Bounds Checks on Demand. In SIGPLAN fWOO Conference on Programming Language Design and Implementation, June 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. R. G. Burger. Efficient Compilation and Profile-Driven Dynamic Recompilation in Scheme. PhD thesis, Indiana University, 1997. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. R. G. Burger and R. K. Dybvig. An infrastructure for profile-driven dynamic recompilation. In ICCL '98, the IEEE Computer Society International Conference on Computer Languages, May 1998. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. M. G. Burke, J .-D. Choi, S. Fink, D. Grove, M. Hind, V. Sarkar, M. J. Serrano, V. C. Sreedhar, H. Srinivasan, and J. Whaley. The Jalapeno dynamic optimizing compiler for Java. In ACM 1999 Java Grande Conference, pages 129--141, June 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. B. Calder, P. Feller, and A. Eustace. Value profiling. In the 30th International Symposium on Microarchitecture, pages 259--269, Dec. 1997. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. C. Chambers and D. Ungar. Making pure object-oriented languages practical. In ACM Conference on Object-Oriented Programming Systems, Languages, and Applications, pages 1--15, Nov. 1991. SIGPLAN Notices 26(11). Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. P. P. Chang, S. A. Mahlke, W. Y. Chen, and W. mei 1995. W. Hwu. Profile-guided automatic inline expansion for C programs. Software - Practice and Experience, 22(5):349--369, May 1992. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. M. Cierniak, G.-Y. Lueh, and J. M. Stichnoth. Practicing JUDO: Java Under Dynamic Optimizations. In SIGPLAN 2000 Conference on Programming Language Design and Implementation, June 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. C. Consel and F. Noel. A general approach for run-time specialization and its application to C. In Conference Record of the 23rd ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, pages 145--156, Jan. 1996. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. T. S. P. E. Corporation. SPEC JVM98 Benchmarks. http:/ /www.spec.org/osg/jvm98, 1998.Google ScholarGoogle Scholar
  21. R. Cytron, J. Ferrante, B. K. Rosen, M. N. Wegman, White paper available at and F. K. Zadeck. An efficient method for computing static single assignment form and the control dependence graph. ACM Transactions on Programming Languages and Systems, 13(4) :451--490, 1991. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. J. Dean and C. Chambers. Towards better inlining decisions using inlining trials. In Proceedings of the ACM Conference on LISP and Functional Programming '94, pages 273--282, Orlando, FL, June 1994. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. D. Detlefs and O. Agesen. Inlining of virtual methods. Fabius system. ACM Computing Surveys, 30(3es):1-5,Google ScholarGoogle Scholar
  24. L. P. Deutsch and A. M. Schiffman. Efficient incremental run-time specialization for free. In implementation of the Smalltalk-80 system. In 11th Annual ACM Symposium on the Principles of Programming Languages, pages 297--302, Jan. 1984. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. S. Fink, K. Knobe, and V. Sarkar. Unified Analysis of Array and Object References in Strongly Typed Languages. In Seventh International Static Analysis Symposium (MOO), June 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. J. Gosling, B. Joy, and G. Steele. The Java Language Specification. Addison Wesley, 1996. Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. B. Grant, M. Mock, M. Philipose, C. Chambers, and S. Eggers. DyC: An expressive annotation-directed dynamic compiler for C. Technical Report TR-97-03-03, University of Washington, Department of Computer Science and Engineering, Mar. 1997.Google ScholarGoogle Scholar
  28. B. Grant, M. Philipose, M. Mock, C. Chambers, and S. J. Eggers. An evaluation of staged run-time optimizations in DyC. In Proceedings of the ACM SIGPLAN '99 Conference on Programming Language Design and Implementation, pages 293--304, 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. D. Grove, J. Dean, C. Garrett, and C. Chambers. Profile-guided receiver class prediction. In ACM Conference on Object-Oriented Programming Systems, Languages, and Applications, pages 108--123, Oct. 1995. Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. G. J. Hansen. Adaptive Systems for the Dynamic Run- Time Optimization of Programs. PhD thesis, Carnegie-Mellon University, 1974. Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. U. Holzle. Adaptive Optimization for Self: Reconciling High Performance with Exploratory Programming. PhD thesis, Stanford University, Aug. 1994. Google ScholarGoogle ScholarDigital LibraryDigital Library
  32. U. Hölzle and D. Ungar. Reconciling responsiveness with performance in pure object-oriented languages. ACM Transactions on Programming Languages and Systems, 18(4):355--400, July 1996. Google ScholarGoogle ScholarDigital LibraryDigital Library
  33. R. J. Hookway and M. A. Herdeg. Digital FX!32: Combining emulation and binary transslation. Digital Technical Journal, 9(1):3--12, Jan. 1997. Google ScholarGoogle ScholarDigital LibraryDigital Library
  34. The Java Hotspot performance engine architecture. White paper available at http://java.sun.com/products/hotspot/whitepaper.html Apr. 1999.Google ScholarGoogle Scholar
  35. T. P. Kistler. Continuous Program Optimization. PhD 1991. thesis, University of California, Irvine, 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  36. A. Krall. Efficient JavaVM Just-in-Time compilation. In J .-L. Gaudiot, editor, International Conference on Parallel Architectures and Compilation Techniques, pages 205--212, Oct. 1998. Google ScholarGoogle ScholarDigital LibraryDigital Library
  37. M. Leone and P. Lee. Dynamic specialization in the Fabius system. ACM Computing Surveys, 30(3es):1-5, Sept. 1998. Article 23. Google ScholarGoogle ScholarDigital LibraryDigital Library
  38. R. Marlet, C. Consel, and P. Boinot. Efficient incremental run-time specialization for free. In Proceedings of the ACM SIGPLAN '99 Conference on Programming Language Design and Implementation, pages 281--292, 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  39. M. Poletto, D. R. Engler, and M. F. Kaashoek. tcc: A system for fast, flexible, and high-level dynamic code generation. In Proceedings of the ACM SIGPLAN'97 Conference on Programming Language Design and Implementation (PLDI), pages 109-121, Las Vegas, Nevada, 15-18 June 1997. SIGPLAN Notices 32(5), May 1997. Google ScholarGoogle ScholarDigital LibraryDigital Library
  40. M. Poletto and V. Sarkar. Linear scan register allocation. A CM Transactions on Programming Languages and Systems, 21(5):895--913, Sept. 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  41. R. Radhakrishnan, N. Vijaykrishnan, L. K. John, and A. Sivasubramaniam. Architectural issues in Java runtime systems. In Proceedings of the Sizth International Symposium on High Performance Computer Architecture (HPCA-6), pages 387--398, Toulouse, France, Jan. 2000.Google ScholarGoogle Scholar
  42. M. Serrano, R. Bordawekar, S. Midkiff, and M. Gupta. Quasi-static compilation in Java. In ACM Conference on Object-Oriented Programming Systems, Languages, and Applications, Oct. 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  43. T. Suganama, T. Ogasawara, M. Takeuchi, T. Yasue, M. Kawahito, K. Ishizaki, H. Komatsu, and T. Nakatani. Overview of the IBM Java Just-in-Time compiler. IBM Systems Journal, 39(1), 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  44. VolanoMark 2.1. http://www.volano.com/benchmarks.html.Google ScholarGoogle Scholar
  45. J. Whaley. Dynamic optimization through the use of automatic runtime specialization. M.eng., Massachussetts Institute of Technology, May 1999.Google ScholarGoogle Scholar
  46. J. Whaley. A portable sampling-based profiler for Java virtual machines. In ACM 2000 Java Grande Conference, June 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  47. B.-S. Yang, S.-M. Moon, S. Park, J. Lee, S. Lee, J. Park, Y. C. Chung, S. Kim, K. Ebcioglu, and E. Altman. LaTTe: A Java VM Just-in-Time compiler with fast and efficient register allocation. In International Conference on Parallel Architectures and Compilation Techniques, Oct. 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  48. X. Zhang, Z. Wang, N. Gloy, J. B. Chen, and M. D. Smith. System support for automated profiling and optimization. In Proceedings of the 16th Symposium on Operating Systems Principles (SOSP-97), Operating Systems Review, 31(5), pages 15--26, Oct. 5-8 1997. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Adaptive optimization in the Jalapeno JVM

      Recommendations

      Comments

      Login options

      Check if you have access through your login credentials or your institution to get full access on this article.

      Sign in

      Full Access

      • Published in

        cover image ACM SIGPLAN Notices
        ACM SIGPLAN Notices  Volume 46, Issue 4
        April 2011
        56 pages
        ISSN:0362-1340
        EISSN:1558-1160
        DOI:10.1145/1988042
        Issue’s Table of Contents

        Copyright © 2011 Authors

        Publisher

        Association for Computing Machinery

        New York, NY, United States

        Publication History

        • Published: 20 May 2011

        Check for updates

        Qualifiers

        • research-article

      PDF Format

      View or Download as a PDF file.

      PDF

      eReader

      View online with eReader.

      eReader
      About Cookies On This Site

      We use cookies to ensure that we give you the best experience on our website.

      Learn more

      Got it!