Vincent: Green Hot Methods in the JVM (Extended Abstract)

Authors Kenan Liu, Khaled Mahmoud, Joonhwan Yoo, Yu David Liu



PDF
Thumbnail PDF

File

LIPIcs.ECOOP.2022.32.pdf
  • Filesize: 1.13 MB
  • 30 pages

Document Identifiers

Author Details

Kenan Liu
  • SUNY Binghamton, NY, USA
Khaled Mahmoud
  • SUNY Binghamton, NY, USA
Joonhwan Yoo
  • SUNY Binghamton, NY, USA
Yu David Liu
  • SUNY Binghamton, NY, USA

Cite AsGet BibTex

Kenan Liu, Khaled Mahmoud, Joonhwan Yoo, and Yu David Liu. Vincent: Green Hot Methods in the JVM (Extended Abstract). In 36th European Conference on Object-Oriented Programming (ECOOP 2022). Leibniz International Proceedings in Informatics (LIPIcs), Volume 222, pp. 32:1-32:30, Schloss Dagstuhl – Leibniz-Zentrum für Informatik (2022)
https://doi.org/10.4230/LIPIcs.ECOOP.2022.32

Abstract

In this paper, we show the energy efficiency of Java applications can be improved by applying Dynamic Voltage and Frequency Scaling (DVFS) inside the Java Virtual Machine (JVM). We augment the JVM to record the energy consumption of hot methods as the underlying CPU is run at different clock frequencies; after all the frequency possibilities for a method have been explored, the execution of the method in an optimized run is set to the CPU frequency that leads to the most energy-efficient execution for that method. We introduce a new sampling methodology to overcome the dual challenges in our design: both the underlying measurement mechanism for energy profiling and the DVFS for energy optimization are overhead-prone. We extend JikesRVM with our approach and benchmark it over the DaCapo suite on a server-class Linux machine. Experiments show we are able to use 14.9% less energy than built-in power management in Linux, and improve energy efficiency by 21.1% w.r.t. the metric of Energy-Delay Product (EDP).

Subject Classification

ACM Subject Classification
  • Software and its engineering → Software performance
Keywords
  • energy efficiency
  • JVM
  • just-in-time compilation

Metrics

  • Access Statistics
  • Total Accesses (updated on a weekly basis)
    0
    PDF Downloads

References

  1. Kristen Accardi. Balancing power and performance in the linux kernel, https://events.static.linuxfound.org/sites/events/files/slides/LinuxConEurope_2015.pdf. In The 2015 Linux Conference, 2015.
  2. S. Akram, J. B. Sartor, and L. Eeckhout. Dep+burst: Online dvfs performance prediction for energy-efficient managed language execution. IEEE Transactions on Computers, 66(4):601-615, 2017. URL: https://doi.org/10.1109/TC.2016.2609903.
  3. Bowen Alpern, C. R. Attanasio, Anthony Cocchi, Derek Lieber, Stephen Smith, Ton Ngo, John J. Barton, Susan Flynn Hummel, Janice C. Sheperd, and Mark Mergen. Implementing jalapeño in java. SIGPLAN Not., 34(10):314-324, October 1999. URL: https://doi.org/10.1145/320385.320418.
  4. Bowen Alpern, C. Richard Attanasio, John J. Barton, Michael G. Burke, Perry Cheng, Jong-Deok Choi, Anthony Cocchi, Stephen J. Fink, David Grove, Michael Hind, Susan Flynn Hummel, Derek Lieber, Vassily Litvinov, Mark F. Mergen, Ton Ngo, James R. Russell, Vivek Sarkar, Mauricio J. Serrano, Janice C. Shepherd, Stephen E. Smith, Vugranam C. Sreedhar, Harini Srinivasan, and John Whaley. The jalapeño virtual machine. IBM Syst. J., 39(1):211-238, 2000. URL: https://doi.org/10.1147/sj.391.0211.
  5. The Linux Kernel Archives. Intel p-state driver, URL: https://www.kernel.org/doc/Documentation/cpu-freq/intel-pstate.txt.
  6. The Linux Kernel Archives. Linux cpufreq governors, URL: https://www.kernel.org/doc/Documentation/cpu-freq/governors.txt.
  7. M. Arnold and D. Grove. Collecting and exploiting high-accuracy call graph profiles in virtual machines. In International Symposium on Code Generation and Optimization, pages 51-62, 2005. Google Scholar
  8. Matthew Arnold, Stephen Fink, David Grove, Michael Hind, and Peter F. Sweeney. Adaptive optimization in the jalapeño jvm. In Proceedings of the 15th ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications, OOPSLA '00, pages 47-65, New York, NY, USA, 2000. Association for Computing Machinery. URL: https://doi.org/10.1145/353171.353175.
  9. Timur Babakol, Anthony Canino, Khaled Mahmoud, Rachit Saxena, and Yu David Liu. Calm energy accounting for multithreaded java applications. In Proceedings of the 28th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering, ESEC/FSE 2020, pages 976-988, 2020. Google Scholar
  10. Woongki Baek and Trishul M. Chilimbi. Green: a framework for supporting energy-conscious programming using controlled approximation. In PLDI'10, pages 198-209, 2010. Google Scholar
  11. Thomas Bartenstein and Yu David Liu. Green streams for data-intensive software. In Proceedings of the 35th International Conference on Software Engineering (ICSE 2013), May 2013. Google Scholar
  12. Stephen M. Blackburn, Robin Garner, Chris Hoffmann, Asjad M. Khang, Kathryn S. McKinley, Rotem Bentzur, Amer Diwan, Daniel Feinberg, Daniel Frampton, Samuel Z. Guyer, Martin Hirzel, Antony Hosking, Maria Jump, Han Lee, J. Eliot B. Moss, Aashish Phansalkar, Darko Stefanović, Thomas VanDrunen, Daniel von Dincklage, and Ben Wiedermann. The dacapo benchmarks: Java benchmarking development and analysis. In Proceedings of the 21st Annual ACM SIGPLAN Conference on Object-Oriented Programming Systems, Languages, and Applications, OOPSLA '06, pages 169-190, New York, NY, USA, 2006. Association for Computing Machinery. URL: https://doi.org/10.1145/1167473.1167488.
  13. T.D. Burd and R.W. Brodersen. Energy efficient cmos microprocessor design. In HICSS'95, pages 288-297 vol.1, 1995. Google Scholar
  14. Anthony Canino and Yu David Liu. Proactive and adaptive energy-aware programming with mixed typechecking. In Proceedings of the 38th ACM SIGPLAN Conference on Programming Language Design and Implementation, PLDI 2017, Barcelona, Spain, June 18-23, 2017, pages 217-232, 2017. Google Scholar
  15. Anthony Canino, Yu David Liu, and Hidehiko Masuhara. Stochastic energy optimization for mobile GPS applications. In Proceedings of the 2018 ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering, ESEC/SIGSOFT FSE 2018, Lake Buena Vista, FL, USA, November 04-09, 2018, pages 703-713, 2018. Google Scholar
  16. Ting Cao, Stephen M Blackburn, Tiejun Gao, and Kathryn S McKinley. The yin and yang of power and performance for asymmetric hardware and managed software. In Proceedings of the 39th Annual International Symposium on Computer Architecture, ISCA '12, pages 225-236, USA, 2012. IEEE Computer Society. Google Scholar
  17. Anantha P. Chandrakasan, Samuel Sheng, and Robert W. Brodersen. Low power cmos digital design. IEEE JOURNAL OF SOLID STATE CIRCUITS, 27:473-484, 1995. Google Scholar
  18. G. Chen, R. Shetty, M. Kandemir, N. Vijaykrishnan, M. J. Irwin, and M. Wolczko. Tuning garbage collection for reducing memory system energy in an embedded java environment. ACM Trans. Embed. Comput. Syst., pages 27-55, November 2002. Google Scholar
  19. Michael Cohen, Haitao Steve Zhu, Senem Ezgi Emgin, and Yu David Liu. Energy types. In OOPSLA '12, 2012. Google Scholar
  20. Howard David, Eugene Gorbatov, Ulf R. Hanebutte, Rahul Khanna, and Christian Le. Rapl: Memory power estimation and capping. In Proceedings of the 16th ACM/IEEE International Symposium on Low Power Electronics and Design, ISLPED '10, pages 189-194, New York, NY, USA, 2010. ACM. URL: https://doi.org/10.1145/1840845.1840883.
  21. Hadi Esmaeilzadeh, Ting Cao, Yang Xi, Stephen M. Blackburn, and Kathryn S. McKinley. Looking back on the language and hardware revolutions: Measured power, performance, and scaling. In Proceedings of the Sixteenth International Conference on Architectural Support for Programming Languages and Operating Systems, ASPLOS XVI, pages 319-332, New York, NY, USA, 2011. Association for Computing Machinery. URL: https://doi.org/10.1145/1950365.1950402.
  22. X. Gao, D. Liu, D. Liu, H. Wang, and A. Stavrou. E-android: A new energy profiling tool for smartphones. In 2017 IEEE 37th International Conference on Distributed Computing Systems (ICDCS), pages 492-502, June 2017. Google Scholar
  23. Irene Lizeth Manotas Gutiérrez, Lori L. Pollock, and James Clause. SEEDS: a software engineer’s energy-optimization decision support framework. In 36th International Conference on Software Engineering, ICSE '14, Hyderabad, India - May 31 - June 07, 2014, pages 503-514, 2014. Google Scholar
  24. Vivek Haldar, Christian W. Probst, Vasanth Venkatachalam, and Michael Franz. Virtual-machine driven dynamic voltage scaling. Technical report, In Technical Report No.03-21, SICS, 2003. Google Scholar
  25. Henry Hoffmann. Jouleguard: Energy guarantees for approximate applications. In Proceedings of the 25th Symposium on Operating Systems Principles, SOSP '15, pages 198-214, 2015. Google Scholar
  26. Henry Hoffmann, Stelios Sidiroglou, Michael Carbin, Sasa Misailovic, Anant Agarwal, and Martin Rinard. Dynamic knobs for responsive power-aware computing. In ASPLOS '11, 2011. Google Scholar
  27. M. Horowitz, T. Indermaur, and R. Gonzalez. Low-power digital design. In Low Power Electronics, 1994. Digest of Technical Papers., IEEE Symposium, pages 8-11, 1994. Google Scholar
  28. Chung-Hsing Hsu and Ulrich Kremer. The design, implementation, and evaluation of a compiler algorithm for cpu energy reduction. In PLDI'03, pages 38-48, 2003. Google Scholar
  29. Ahmed Hussein, Mathias Payer, Antony L. Hosking, and Christopher A. Vick. Impact of GC design on power and performance for android. In Dalit Naor, Gernot Heiser, and Idit Keidar, editors, Proceedings of the 8th ACM International Systems and Storage Conference, SYSTOR 2015, Haifa, Israel, May 26-28, 2015, pages 13:1-13:12. ACM, 2015. Google Scholar
  30. Intel. Energy analysis user guide, available at URL: https://www.intel.com/content/www/us/en/develop/documentation/energy-analysis-user-guide/.
  31. Intel. Intel 64 and ia-32 architectures software developer’s manual: Volume 3, available at URL: https://www.intel.com/content/www/us/en/architecture-and-technology/64-ia-32-architectures-software-developer-system-programming-manual-325384.html.
  32. Canturk Isci and Margaret Martonosi. Identifying program power phase behavior using power vectors. In In Workshop on Workload Characterization, 2003. Google Scholar
  33. Melanie Kambadur and Martha A. Kim. An experimental survey of energy management across the stack. In Proceedings of the 2014 ACM International Conference on Object Oriented Programming Systems Languages and Applications, OOPSLA '14, pages 329-344, New York, NY, USA, 2014. Association for Computing Machinery. URL: https://doi.org/10.1145/2660193.2660196.
  34. Aman Kansal, Scott Saponas, A.J. Bernheim Brush, Kathryn S. McKinley, Todd Mytkowicz, and Ryder Ziola. The latency, accuracy, and battery (lab) abstraction: Programmer productivity and energy efficiency for continuous mobile context sensing. In OOPSLA '13, pages 661-676, 2013. Google Scholar
  35. Doug Lea. A java fork/join framework. In Proceedings of the ACM 2000 Conference on Java Grande, JAVA '00, pages 36-43, New York, NY, USA, 2000. Association for Computing Machinery. URL: https://doi.org/10.1145/337449.337465.
  36. Bin Lin, Arindam Mallik, Peter Dinda, Gokhan Memik, and Robert Dick. User- and process-driven dynamic voltage and frequency scaling. In 2009 IEEE International Symposium on Performance Analysis of Systems and Software, pages 11-22, 2009. URL: https://doi.org/10.1109/ISPASS.2009.4919634.
  37. Kenan Liu, Khaled Mahmoud, Joonhwan Yoo, and Yu David Liu. Vincent: Green hot methods in the JVM (technical report), available at URL: http://www.cs.binghamton.edu/~davidl/papers/ECOOP22Long.pdf.
  38. Kenan Liu, Gustavo Pinto, and Yu David Liu. Data-oriented characterization of application-level energy optimization. In FASE 2015, April 2015. Google Scholar
  39. Yu David Liu. Green thieves in work stealing. In Proceedings of ASPLOS'12 (Provactive Ideas session), 2012. Google Scholar
  40. Yu David Liu. Variant-frequency semantics for green futures. In Proceedings of the Workshop on Programming Language Approaches to Concurrency and Communication-cEntric Software (PLACES'12), 2012. Google Scholar
  41. Brandon Lucia and Benjamin Ransford. A simpler, safer programming and execution model for intermittent systems. In Proceedings of the 36th ACM SIGPLAN Conference on Programming Language Design and Implementation, PLDI '15, pages 575-585, 2015. Google Scholar
  42. Eric Masanet, Arman Shehabi, Nuoa Lei, Sarah Smith, and Jonathan Koomey. Recalibrating global data center energy-use estimates. Science, 367(6481):984-986, 2020. URL: https://doi.org/10.1126/science.aba3758.
  43. Abhinav Pathak, Y. Charlie Hu, and Ming Zhang. Where is the energy spent inside my app?: Fine grained energy accounting on smartphones with eprof. In Proceedings of the 7th ACM European Conference on Computer Systems, EuroSys '12, pages 29-42, 2012. Google Scholar
  44. Gustavo Pinto, Anthony Canino, Fernando Castor, Guoqing (Harry) Xu, and Yu David Liu. Understanding and overcoming parallelism bottlenecks in forkjoin applications. In Proceedings of the 32nd IEEE/ACM International Conference on Automated Software Engineering, ASE 2017, Urbana, IL, USA, October 30 - November 03, 2017, pages 765-775, 2017. Google Scholar
  45. Gustavo Pinto, Fernando Castor, and Yu David Liu. Understanding energy behaviors of thread management constructs. In OOPSLA '14, 2014. Google Scholar
  46. Gustavo Pinto, Kenan Liu, Fernando Castor, and Yu David Liu. A comprehensive study on the energy efficiency of java thread-safe collections. In International Conference on Software Maintenance and Evolution (ICSME 2016), 2016. Google Scholar
  47. Haris Ribic and Yu David Liu. Energy-efficient work-stealing language runtimes. In Architectural Support for Programming Languages and Operating Systems, ASPLOS '14, Salt Lake City, UT, USA, March 1-5, 2014, pages 513-528, 2014. Google Scholar
  48. Haris Ribic and Yu David Liu. AEQUITAS: coordinated energy management across parallel applications. In Proceedings of the 2016 International Conference on Supercomputing, ICS 2016, Istanbul, Turkey, June 1-3, 2016, pages 4:1-4:12, 2016. Google Scholar
  49. A. Sampson, W. Dietl, E. Fortuna, D. Gnanapragasam, L. Ceze, and D. Grossman. EnerJ: Approximate data types for safe and general low-power computation. In PLDI'11, 2011. Google Scholar
  50. H. Saputra, M. Kandemir, N. vijaykrishan, M Irwin, J. Hu, and U. Kremer. Energy-conscious compilation based on voltage scaling. In In Proc. ACM SIGPLAN Joint Conference on Languages, Compilers, and Tools for Embedded Systems and Software and Compilers for Embedded Systems, pages 2-11. ACM Press, 2002. Google Scholar
  51. Jennfer B. Sartor and Lieven Eeckhout. Exploring multi-threaded java application performance on multicore hardware. In OOPSLA'12, OOPSLA '12, pages 281-296, 2012. Google Scholar
  52. Timothy Sherwood, Erez Perelman, and Brad Calder. Basic block distribution analysis to find periodic behavior and simulation points in applications. In PACT '01: Proceedings of the 2001 International Conference on Parallel Architectures and Compilation Techniques, pages 3-14, Washington, DC, USA, 2001. IEEE Computer Society. Google Scholar
  53. Timothy Sherwood, Erez Perelman, Greg Hamerly, and Brad Calder. Automatically characterizing large scale program behavior. In ASPLOS-X: Proceedings of the 10th international conference on Architectural support for programming languages and operating systems, pages 45-57, 2002. Google Scholar
  54. L.A. Smith, J.M. Bull, and J. Obdrizalek. A parallel java grande benchmark suite. In SC '01: Proceedings of the 2001 ACM/IEEE Conference on Supercomputing, pages 6-6, 2001. URL: https://doi.org/10.1145/582034.582042.
  55. Jacob Sorber, Alexander Kostadinov, Matthew Garber, Matthew Brennan, Mark D. Corner, and Emery D. Berger. Eon: a language and runtime system for perpetual systems. In SenSys '07, pages 161-174, 2007. Google Scholar
  56. N. Vijaykrishnan, M. Kandemir, S. Kim, S. Tomar, A. Sivasubramaniam, and M. J. Irwin. Energy behavior of java applications from the memory perspective. In Proceedings of the 1st Java Virtual Machine Research and Technology Symposium, JVM 2001, Proceedings of the 1st Java Virtual Machine Research and Technology Symposium, JVM 2001. USENIX Association, 2001. Funding Information: This research is supported in part by grants from NSF CCR-0073419, Pittsburgh Digital Greenhouse and Sun Microsystems.; 1st Java Virtual Machine Research and Technology Symposium, JVM 2001 ; Conference date: 23-04-2001 Through 24-04-2001. Google Scholar
  57. Mark Weiser, Brent Welch, Alan Demers, and Scott Shenker. Scheduling for reduced cpu energy. In OSDI '94: Proceedings of the 1st USENIX conference on Operating Systems Design and Implementation, page 2, Berkeley, CA, USA, 1994. USENIX Association. Google Scholar
  58. Qiang Wu, V.J. Reddi, Youfeng Wu, Jin Lee, D. Connors, D. Brooks, M. Martonosi, and D.W. Clark. A dynamic compilation framework for controlling microprocessor energy and performance. In 38th Annual IEEE/ACM International Symposium on Microarchitecture (MICRO'05), pages 12 pp.-282, 2005. URL: https://doi.org/10.1109/MICRO.2005.7.
  59. Fen Xie, Margaret Martonosi, and Sharad Malik. Compile-time dynamic voltage scaling settings: opportunities and limits. In PLDI'03, pages 49-62, 2003. Google Scholar
  60. Heng Zeng, Carla S. Ellis, Alvin R. Lebeck, and Amin Vahdat. Currentcy: A unifying abstraction for expressing energy management policies. In In Proceedings of the USENIX Annual Technical Conference, pages 43-56, 2003. Google Scholar
  61. Haitao Steve Zhu, Chaoren Lin, and Yu David Liu. A programming model for sustainable software. In ICSE'15, pages 767-777, 2015. Google Scholar
Questions / Remarks / Feedback
X

Feedback for Dagstuhl Publishing


Thanks for your feedback!

Feedback submitted

Could not send message

Please try again later or send an E-mail