Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/3687997.3695638acmconferencesArticle/Chapter ViewAbstractPublication PagessplashConference Proceedingsconference-collections
research-article
Open access

Trading Runtime for Energy Efficiency: Leveraging Power Caps to Save Energy across Programming Languages

Published: 17 October 2024 Publication History

Abstract

Energy efficiency of software is crucial in minimizing environmental impact and reducing operational costs of ICT systems. Energy efficiency is therefore a key area of contemporary software language engineering research. A recurrent discussion that excites our community is whether runtime performance is always a proxy for energy efficiency. While a generalized intuition seems to suggest this is the case, this intuition does not align with the fact that energy is the accumulation of power over time; hence, time is only one of the factors in this accumulation. We focus on the other factor, power, and the impact that capping it has on the energy efficiency of running software. We conduct an extensive investigation comparing regular and power-capped executions of 9 benchmark programs obtained from The Computer Language Benchmarks Game, across 20 distinct programming languages. Our results show that employing power caps can be used to trade running time, which is degraded, for energy efficiency, which is improved, in all the programming languages and in all benchmarks that were considered. We observe overall energy savings of almost 14% across the 20 programming languages, with notable savings of 27% in Haskell. This saving, however, comes at the cost of an overall increase of the program's execution time of 91% in average. We are also able to draw similar observations using language specific benchmarks for programming languages of different paradigms and with different execution models. This is achieved analyzing a wide range of benchmark programs from the nofib Benchmark Suite of Haskell Programs, DaCapo Benchmark Suite for Java, and the Python Performance Benchmark Suite. We observe energy savings of approximately 8% to 21% across the test suites, with execution time increases ranging from 21% to 46%. Notably, the DaCapo suite exhibits the most significant values, with 20.84% energy savings and a 45.58% increase in execution time. Our results have the potential to drive significant energy savings in the context of computational tasks for which runtime is not critical, including Batch Processing Systems, Background Data Processing and Automated Backups.

References

[1]
Anders Andrae. 2020. New perspectives on internet electricity use in 2030. Engineering and Applied Science Letters, 3 (2020), Jun, 19–31.
[2]
S. M. Blackburn, R. Garner, C. Hoffman, A. M. Khan, K. S. McKinley, R. Bentzur, A. Diwan, D. Feinberg, D. Frampton, S. Z. Guyer, M. Hirzel, A. Hosking, M. Jump, H. Lee, J. E. B. Moss, A. Phansalkar, D. Stefanović, T. VanDrunen, D. von Dincklage, and B. Wiedermann. 2006. The DaCapo Benchmarks: Java Benchmarking Development and Analysis. In OOPSLA ’06: Proceedings of the 21st annual ACM SIGPLAN conference on Object-Oriented Programing, Systems, Languages, and Applications. ACM, 169–190.
[3]
Barry Boehm. 1981. Software Engineering Economics. Prentice Hall. isbn:0138221227
[4]
Gerardo Canfora and Aniello Cimitile. 2000. Software Maintenance. Journal of Software Maintenance: Research and Practice, 12, 6 (2000), 365–395.
[5]
Shaiful Alam Chowdhury and Abram Hindle. 2016. GreenOracle: estimating software energy consumption with energy measurement corpora. In Proceedings of the 13th International Conference on Mining Software Repositories, MSR, 2016. 49–60.
[6]
Stefano Conoci, Pierangelo Di Sanzo, Bruno Ciciani, and Francesco Quaglia. 2018. Adaptive Performance Optimization under Power Constraint in Multi-thread Applications with Diverse Scalability. In Proceedings of the 2018 ACM/SPEC International Conference on Performance Engineering (ICPE ’18). ACM, 16–27. isbn:9781450350952
[7]
Marco Couto, Paulo Borba, Jácome Cunha, João Paulo Fernandes, Rui Pereira, and João Saraiva. 2017. Products go Green: Worst-Case Energy Consumption in Software Product Lines. In Proceedings of the 21st International Systems and Software Product Line Conference - Volume A (SPLC ’17). ACM, 84–93. isbn:9781450352215
[8]
Marco Couto, Rui Pereira, Francisco Ribeiro, Rui Rua, and João Saraiva. 2017. Towards a Green Ranking for Programming Languages. In Proceedings of the 21st Brazilian Symposium on Programming Languages (SBLP ’17). ACM. isbn:9781450353892
[9]
Simão Cunha, Luís Silva, João Paulo Fernandes, and João Saraiva. 2024. Energy-Languages-PowerCap. 9, https://doi.org/10.6084/m9.figshare.27087901.v1
[10]
Martin Dimitrov, Carl Strickland, Seung-Woo Kim, Karthik Kumar, and Kshitij Doshi. 2015. Intel® Power Governor. https://software.intel.com/en-us/articles/intel-power-governor Accessed: 2015-10-12
[11]
Steven Fraser, Dennis Mancl, Bill Opdyke, Judith Bishop, Pradeep Kathail, Junilu Lacar, Ipek Ozkaya, and Alexandra Szynkarski. 2013. Technical debt: from source to mitigation. In Proceedings of the 2013 Companion Publication for Conference on Systems, Programming, & Applications: Software for Humanity (SPLASH ’13). ACM, 67–70. isbn:9781450319959
[12]
Stefanos Georgiou, Maria Kechagia, Panos Louridas, and Diomidis Spinellis. 2018. What are your programming language’s energy-delay implications? In Proceedings of the 15th International Conference on Mining Software Repositories (MSR ’18). ACM, 303–313. isbn:9781450357166
[13]
Isaac Gouy. [n. d.]. The Computer Language Benchmarks Game. https://benchmarksgame-team.pages.debian.net/benchmarksgame/site.html
[14]
Marcus Hähnel, Björn Döbel, Marcus Völp, and Hermann Härtig. 2012. Measuring Energy Consumption for Short Code Paths Using RAPL. SIGMETRICS Performance Evaluation Review, 40, 3 (2012), Jan, 13–17. issn:0163-5999
[15]
Shuai Hao, Ding Li, William G. J. Halfond, and Ramesh Govindan. 2013. Estimating Mobile Application Energy Consumption Using Program Analysis. In Proc. of the 2013 International Conference on Software Engineering (ICSE’13). IEEE Press, 92–101. isbn:978-1-4673-3076-3
[16]
Samir Hasan, Zachary King, Munawar Hafiz, Mohammed Sayagh, Bram Adams, and Abram Hindle. 2016. Energy profiles of java collections classes. In Proc. of the 38th International Conference on Software Engineering (ICSE’16). 225–236.
[17]
Connor Imes, Huazhe Zhang, Kevin Zhao, and Henry Hoffmann. 2019. CoPPer: Soft Real-Time Application Performance Using Hardware Power Capping. In 2019 IEEE International Conference on Autonomic Computing (ICAC’19). 31–41.
[18]
R. Jabbarvand, A. Sadeghi, J. Garcia, S. Malek, and P. Ammann. 2015. EcoDroid: An Approach for Energy-based Ranking of Android Apps. In Proc. of 4th Int. Workshop on Green and Sustainable Software (GREENS ’15). IEEE Press, 8–14.
[19]
Timothy M. Jones, Michael F. P. O’Boyle, Jaume Abella, Antonio González, and Oğuz Ergin. 2009. Energy-efficient register caching with compiler assistance. ACM Transactions on Architecture and Code Optimization, 6, 4 (2009), Article 13, oct, issn:1544-3566
[20]
I. Kadayif, M. Kandemir, G. Chen, N. Vijaykrishnan, M. J. Irwin, and A. Sivasubramaniam. 2005. Compiler-directed high-level energy estimation and optimization. ACM Transactions on Embedded Computing Systems, 4, 4 (2005), nov, 819–850. issn:1539-9087
[21]
Kashif Nizam Khan, Mikael Hirki, Tapio Niemi, Jukka K. Nurminen, and Zhonghong Ou. 2018. RAPL in Action: Experiences in Using RAPL for Power Measurements. ACM Transactions on Modeling and Performance Evaluation of Computing Systems, 3, 2 (2018), Article 9, mar, issn:2376-3639
[22]
Maja Hanne Kirkeby, Bernardo Santos, João Paulo Fernandes, and Alberto Pardo. 2024. Compiling Haskell for Energy Efficiency: Empirical Analysis of Individual Transformations. In Proceedings of the 39th ACM Symposium on Applied Computing (SAC’24). ACM, 1104–1113. isbn:9798400702433
[23]
Lukas Koedijk and Ana Oprescu. 2022. Finding Significant Differences in the Energy Consumption when Comparing Programming Languages and Programs. In 2022 International Conference on ICT for Sustainability (ICT4S). IEEE Press, 1–12.
[24]
Adam Krzywaniak and Paweł Czarnul. 2020. Performance/Energy Aware Optimization of Parallel Applications on GPUs Under Power Capping. In Parallel Processing and Applied Mathematics, Roman Wyrzykowski, Ewa Deelman, Jack Dongarra, and Konrad Karczewski (Eds.). Springer, 123–133. isbn:978-3-030-43222-5
[25]
Adam Krzywaniak, Pawel Czarnul, and Jerzy Proficz. 2019. Extended investigation of performance-energy trade-offs under power capping in HPC environments. In 2019 International Conference on High Performance Computing & Simulation (HPCS). 440–447.
[26]
Adam Krzywaniak, Paweł Czarnul, and Jerzy Proficz. 2022. DEPO: A dynamic energy‐performance optimizer tool for automatic power capping for energy efficient high‐performance computing. Software-Practice & Experience, 52 (2022), 2598–2634.
[27]
Adam Krzywaniak, Paweł Czarnul, and Jerzy Proficz. 2023. Dynamic GPU power capping with online performance tracing for energy efficient GPU computing using DEPO tool. Future Generation Computer Systems, 145 (2023), 396–414. issn:0167-739X
[28]
Ding Li and William G. J. Halfond. 2014. An investigation into energy-saving programming practices for Android smartphone app development. In Proceedings of the 3rd International Workshop on Green and Sustainable Software (GREENS 2014). ACM, 46–53. isbn:9781450328449
[29]
Luís Gabriel Lima, Gilberto Melfe, Francisco Soares-Neto, Paulo Lieuthier, João Paulo Fernandes, and Fernando Castor. 2016. Haskell in Green Land: Analyzing the Energy Behavior of a Purely Functional Language. In Proc. of the 23rd IEEE Int. Conf. on Software Analysis, Evolution, and Reengineering (SANER’2016). IEEE, 517–528. isbn:978-1-5090-1855-0
[30]
Mario Linares-Vásquez, Gabriele Bavota, Carlos Bernal-Cárdenas, Rocco Oliveto, Massimiliano Di Penta, and Denys Poshyvanyk. 2014. Mining energy-greedy API usage patterns in Android apps: an empirical study. In Proc. of the 11th Working Conference on Mining Software Repositories (MSR’14). 2–11.
[31]
Xinxin Mei, Ling Sing Yung, Kaiyong Zhao, and Xiaowen Chu. 2013. A measurement study of GPU DVFS on energy conservation. In Proceedings of the Workshop on Power-Aware Computing and Systems (HotPower ’13). ACM. isbn:9781450324588
[32]
Sparsh Mittal and Jeffrey S. Vetter. 2014. A Survey of Methods for Analyzing and Improving GPU Energy Efficiency. ACM Comput. Surv., 47, 2 (2014), Article 19, aug, 23 pages. issn:0360-0300 https://doi.org/10.1145/2636342
[33]
Wellington Oliveira, Renato Oliveira, and Fernando Castor. 2017. A study on the energy consumption of Android app development approaches. In Proceedings of the 14th International Conference on Mining Software Repositories. 42–52.
[34]
Ana Oprescu, Sander Misdorp, and Koen van Elsen. 2022. Energy cost and accuracy impact of k-anonymity. In Proc. of the International Conference on ICT for Sustainability (ICT4S’22). IEEE, 65–76.
[35]
Zakaria Ournani, Mohammed Chakib Belgaid, Romain Rouvoy, Pierre Rust, and Joël Penhoat. 2021. Evaluating the Impact of Java Virtual Machines on Energy Consumption. In Proceedings of the 15th ACM / IEEE International Symposium on Empirical Software Engineering and Measurement (ESEM ’21). ACM. isbn:9781450386654
[36]
Will Partain. 1993. The nofib Benchmark Suite of Haskell Programs. In Functional Programming, Glasgow 1992, John Launchbury and Patrick Sansom (Eds.). Springer London, 195–202. isbn:978-1-4471-3215-8
[37]
Rui Pereira, Marco Couto, Francisco Ribeiro, Rui Rua, Jácome Cunha, João Paulo Fernandes, and João Saraiva. 2017. Energy efficiency across programming languages: how do energy, time, and memory relate? In Proceedings of the 10th ACM SIGPLAN International Conference on Software Language Engineering (SLE 2017). ACM, 256–267. isbn:9781450355254
[38]
Rui Pereira, Marco Couto, Francisco Ribeiro, Rui Rua, Jácome Cunha, João Paulo Fernandes, and João Saraiva. 2021. Ranking programming languages by energy efficiency. Science of Computer Programming, 205 (2021).
[39]
Rui Pereira, Marco Couto, João Saraiva, Jácome Cunha, and João Paulo Fernandes. 2016. The Influence of the Java Collection Framework on Overall Energy Consumption. In Proc. of the 5th Int. Workshop on Green and Sustainable Software (GREENS ’16). ACM, 15–21. isbn:978-1-4503-4161-5
[40]
Thomas M. Pigoski. 1997. Practical Software Maintenance: Best Practices for Managing Your Software Investment. John Wiley & Sons. isbn:978-0471182235
[41]
Hannah Ritchie and Max Roser. 2020. Energy. Our World in Data, Available at: https://ourworldindata.org/energy
[42]
Efraim Rotem, Alon Naveh, Avinash Ananthakrishnan, Eliezer Weissmann, and Doron Rajwan. 2012. Power-Management Architecture of the Intel Microarchitecture Code-Named Sandy Bridge. IEEE Micro, 32, 2 (2012), 20–27.
[43]
Rui Rua, Tiago Fraga, Marco Couto, and João Saraiva. 2020. Greenspecting Android virtual keyboards. In Proceedings of the IEEE/ACM 7th International Conference on Mobile Software Engineering and Systems (MOBILESoft ’20). ACM, 98–108. isbn:9781450379595
[44]
Cagri Sahin, Furkan Cayci, Irene Lizeth Manotas Gutierrez, James Clause, Fouad Kiamilev, Lori Pollock, and Kristina Winbladh. 2012. Initial explorations on design pattern energy usage. In Green and Sustainable Software (GREENS), 2012 1st Int. Workshop on. 55–61.
[45]
Cagri Sahin, Lori Pollock, and James Clause. 2014. How do code refactorings affect energy usage? In Proc. of 8th ACM/IEEE Int. Symposium on Empirical Software Engineering and Measurement. 36.
[46]
Madhavi Valluri and Lizy K. John. 2001. Is Compiling for Performance — Compiling for Power? Springer, 101–115.
[47]
Werner Voegels. 2023. Keynote at AWS re:Invent 2023. https://youtu.be/UTRBVPvzt9w?t=3656 Accessed: 2024-05-19
[48]
Tomofumi Yuki and Sanjay Rajopadhye. 2014. Folklore confirmed: Compiling for speed= compiling for energy. In Languages and Compilers for Parallel Computing. Springer, 169–184.
[49]
W. Zhang, J. S. Hu, V. Degalahal, M. Kandemir, N. Vijaykrishnan, and M. J. Irwin. 2004. Reducing instruction cache energy consumption using a compiler-based strategy. ACM Transactions on Architecture and Code Optimization, 1, 1 (2004), mar, 3–33. issn:1544-3566
[50]
Dan Zhao, Siddharth Samsi, Joseph McDonald, Baolin Li, David Bestor, Michael Jones, Devesh Tiwari, and Vijay Gadepally. 2023. Sustainable Supercomputing for AI: GPU Power Capping at HPC Scale. In Proceedings of the 2023 ACM Symposium on Cloud Computing (SoCC ’23). ACM, 588–596. isbn:9798400703874

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
SLE '24: Proceedings of the 17th ACM SIGPLAN International Conference on Software Language Engineering
October 2024
235 pages
ISBN:9798400711800
DOI:10.1145/3687997
This work is licensed under a Creative Commons Attribution-ShareAlike International 4.0 License.

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 17 October 2024

Permissions

Request permissions for this article.

Check for updates

Badges

Author Tags

  1. Energy Efficiency
  2. Green Software
  3. Language Benchmarking
  4. Power Cap
  5. Programming Languages

Qualifiers

  • Research-article

Conference

SLE '24
Sponsor:

Upcoming Conference

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • 0
    Total Citations
  • 409
    Total Downloads
  • Downloads (Last 12 months)409
  • Downloads (Last 6 weeks)112
Reflects downloads up to 17 Feb 2025

Other Metrics

Citations

View Options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Login options

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media