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

skip to main content
10.1145/3368089.3409703acmconferencesArticle/Chapter ViewAbstractPublication PagesfseConference Proceedingsconference-collections
research-article

Calm energy accounting for multithreaded Java applications

Published: 08 November 2020 Publication History

Abstract

Energy accounting is a fundamental problem in energy management, defined as attributing global energy consumption to individual components of interest. In this paper, we take on this problem at the application level, where the components for accounting are application logical units, such as methods, classes, and packages. Given a Java application, our novel runtime system Chappie produces an energy footprint, i.e., the relative energy consumption of all programming abstraction units within the application.
The design of Chappie is unique in several dimensions. First, relative to targeted energy profiling where the profiler determines the energy consumption of a pre-defined application logical unit, e.g., a specific method, Chappie is total: the energy footprint encompasses all methods within an application. Second, Chappie is concurrency-aware: energy attribution is fully aware of the multi-threaded behavior of Java applications, including JVM bookkeeping threads. Third, Chappie is an embodiment of a novel philosophy for application-level energy accounting and profiling, which states that the accounting run should preserve the temporal phased power behavior of the application, and the spatial power distribution among the underlying hardware system. We term this important property as calmness. Against state-of-the-art DaCapo benchmarks, we show that the energy footprint generated by Chappie is precise while incurring negligible overhead. In addition, all results are produced with a high degree of calmness.

Supplementary Material

Auxiliary Teaser Video (fse20main-p250-p-teaser.mp4)
chappie's full presentation video for the digital conference.
Auxiliary Presentation Video (fse20main-p250-p-video.mp4)
chappie's full presentation video for the digital conference.

References

[1]
Apache batik,https://xmlgraphics.apache.org/batik.
[2]
Async profiler, https://github.com/jvm-profiling-tools/async-profiler.
[3]
h2 database engine, https://www.h2database.com/html/main.html.
[4]
Alam, M. M. u., Liu, T., Zeng, G., and Muzahid, A. Syncperf: Categorizing, detecting, and diagnosing synchronization performance bugs. In Proceedings of the Twelfth European Conference on Computer Systems ( 2017 ), EuroSys '17, pp. 298-313.
[5]
Baek, W., and Chilimbi, T. M. Green: a framework for supporting energyconscious programming using controlled approximation. In PLDI'10, pp. 198-209.
[6]
Banerjee, A., Chong, L. K., Ballabriga, C., and Roychoudhury, A. Energypatch: Repairing resource leaks to improve energy-eficiency of android apps. IEEE Transactions on Software Engineering 44, 5 (May 2018 ), 470-490.
[7]
Banerjee, A., Chong, L. K., Chattopadhyay, S., and Roychoudhury, A. Detecting energy bugs and hotspots in mobile apps. In Proceedings of the 22nd ACM SIGSOFT International Symposium on Foundations of Software Engineering (New York, NY, USA, 2014 ), FSE 2014, Association for Computing Machinery, p. 588-598.
[8]
Bartenstein, T., and Liu, Y. D. Green streams for data-intensive software. In Proceedings of the 35th International Conference on Software Engineering (ICSE 2013 ) (May 2013 ).
[9]
Blackburn, S. M., Garner, R., Hoffman, C., Khan, A. M., McKinley, K. S., Bentzur, R., Diwan, A., Feinberg, D., Frampton, D., Guyer, S. Z., Hirzel, M., Hosking, A., Jump, M., Lee, H., Moss, J. E. B., Phansalkar, A., Stefanović, D., VanDrunen, T., von Dincklage, D., and Wiedermann, B. The DaCapo benchmarks: Java benchmarking development and analysis. In OOPSLA '06, pp. 169-190.
[10]
Bokhari, M. A., Weng, L., Wagner, M., and Alexander, B. Mind the gap-a distributed framework for enabling energy optimisation on modern smartphones in the presence of noise, drift, and statistical insignificance. In 2019 IEEE Congress on Evolutionary Computation (CEC) ( 2019 ), pp. 1330-1337.
[11]
Boston, B., Sampson, A., Grossman, D., and Ceze, L. Probability type inference for flexibile approximate programming. In OOPSLA '15.
[12]
Bruce, B. R., Petke, J., and Harman, M. Reducing energy consumption using genetic improvement. In Proceedings of the Genetic and Evolutionary Computation Conference, GECCO 2015, Madrid, Spain, July 11-15, 2015 ( 2015 ), pp. 1327-1334.
[13]
Canino, A., and Liu, Y. D. 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 ( 2017 ), pp. 217-232.
[14]
Canino, A., Liu, Y. D., and Masuhara, H. 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 ( 2018 ), pp. 703-713.
[15]
Chiba, S. Load-time structural reflection in java. In Proceedings of the 14th European Conference on Object-Oriented Programming (Berlin, Heidelberg, 2000 ), ECOOP '00, Springer-Verlag, pp. 313-336.
[16]
Cohen, M., Zhu, H. S., Emgin, S. E., and Liu, Y. D. Energy types. In OOPSLA '12.
[17]
Curtsinger, C., and Berger, E. D. Coz: Finding code that counts with causal profiling. In Proceedings of the 25th Symposium on Operating Systems Principles ( 2015 ), SOSP '15, pp. 184-197.
[18]
David, H., Gorbatov, E., Hanebutte, U. R., Khanna, R., and Le, C. Rapl: Memory power estimation and capping. In ISLPED '10, pp. 189-194.
[19]
Dhodapkar, A. S., and Smith, J. E. Managing multi-configuration hardware via dynamic working set analysis. In Proceedings of the 29th Annual International Symposium on Computer Architecture (USA, 2002 ), ISCA '02, IEEE Computer Society, p. 233-244.
[20]
Dutta, P., Feldmeier, M., Paradiso, J., and Culler, D. Energy metering for free: Augmenting switching regulators for real-time monitoring. In 2008 International Conference on Information Processing in Sensor Networks (ipsn 2008 ) ( 2008 ), pp. 283-294.
[21]
Fei, Y., Zhong, L., and Jha, N. An energy-aware framework for coordinated dynamic software management in mobile computers. In MASCOTS'04 ( 2004 ), pp. 306-317.
[22]
Flinn, J., and Satyanarayanan, M. Powerscope: a tool for profiling the energy usage of mobile applications. In Proceedings WMCSA'99. Second IEEE Workshop on Mobile Computing Systems and Applications ( 1999 ), pp. 2-10.
[23]
Gao, X., Liu, D., Liu, D., Wang, H., and Stavrou, A. E-android: A new energy profiling tool for smartphones. In 2017 IEEE 37th International Conference on Distributed Computing Systems (ICDCS) ( June 2017 ), pp. 492-502.
[24]
Grech, N., Georgiou, K., Pallister, J., Kerrison, S., Morse, J., and Eder, K. Static analysis of energy consumption for llvm ir programs. In Proceedings of the 18th International Workshop on Software and Compilers for Embedded Systems ( 2015 ), SCOPES '15, pp. 12-21.
[25]
Gutiérrez, I. L. M., Pollock, L. L., and Clause, J. 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 ( 2014 ), pp. 503-514.
[26]
Hao, S., Li, D., Halfond, W. G. J., and Govindan, R. Estimating android applications' cpu energy usage via bytecode profiling. In Proceedings of the First International Workshop on Green and Sustainable Software ( 2012 ), GREENS '12, pp. 1-7.
[27]
Hao, S., Li, D., Halfond, W. G. J., and Govindan, R. Estimating mobile application energy consumption using program analysis. In ICSE '13 ( 2013 ), pp. 92-101.
[28]
Hirzel, M., and Chilimbi, T. Bursty tracing: A framework for low-overhead temporal profiling. In 4th ACM Workshop on Feedback-Directed and Dynamic Optimization (FDDO-4) ( 2001 ), pp. 117-126.
[29]
Hoffmann, H. Jouleguard: Energy guarantees for approximate applications. In Proceedings of the 25th Symposium on Operating Systems Principles, SOSP '15, pp. 198-214.
[30]
Hoffmann, H., Sidiroglou, S., Carbin, M., Misailovic, S., Agarwal, A., and Rinard, M. Dynamic knobs for responsive power-aware computing. In ASPLOS '11.
[31]
Isci, C., and Martonosi, M. Identifying program power phase behavior using power vectors. In In Workshop on Workload Characterization ( 2003 ).
[32]
Jayaseelan, R., Mitra, T., and Li, X. Estimating the worst-case energy consumption of embedded software. In 12th IEEE Real-Time and Embedded Technology and Applications Symposium (RTAS'06) ( 2006 ), pp. 81-90.
[33]
Jin, G., Song, L., Shi, X., Scherpelz, J., and Lu, S. Understanding and detecting real-world performance bugs. In Proceedings of the 33rd ACM SIGPLAN Conference on Programming Language Design and Implementation ( 2012 ), PLDI '12, pp. 77-88.
[34]
Kansal, A., Saponas, S., Brush, A. B., McKinley, K. S., Mytkowicz, T., and Ziola, R. The latency, accuracy, and battery (lab) abstraction: Programmer productivity and energy eficiency for continuous mobile context sensing. In OOPSLA '13, pp. 661-676.
[35]
Kyrola, A., Blelloch, G. E., and Guestrin, C. Graphchi: Large-scale graph computation on just a PC. In 10th USENIX Symposium on Operating Systems Design and Implementation, OSDI 2012, Hollywood, CA, USA, October 8-10, 2012 ( 2012 ), pp. 31-46.
[36]
Liu, K., Pinto, G., and Liu, Y. D. Data-oriented characterization of applicationlevel energy optimization. In Proceedings of FASE 2015 ; JRAPL Home: http:// kliu20. github.io/ jRAPL/.
[37]
Lucia, B., and Ransford, B. A simpler, safer programming and execution model for intermittent systems. In Proceedings of the 36th ACM SIGPLAN Conference on Programming Language Design and Implementation ( 2015 ), PLDI '15, pp. 575-585.
[38]
Ma, X., Huang, P., Jin, X., Wang, P., Park, S., Shen, D., Zhou, Y., Saul, L. K., and Voelker, G. M. edoctor: Automatically diagnosing abnormal battery drain issues on smartphones. In Proceedings of the 10th USENIX Conference on Networked Systems Design and Implementation ( 2013 ), nsdi'13, pp. 57-70.
[39]
Noble, B. D., Satyanarayanan, M., Narayanan, D., Tilton, J. E., Flinn, J., and Walker, K. R. Agile application-aware adaptation for mobility. pp. 276-287.
[40]
Pathak, A., Hu, Y. C., and Zhang, M. Bootstrapping energy debugging on smartphones: A first look at energy bugs in mobile devices. HotNets-X '11, pp. 5 : 1-5 : 6.
[41]
Pathak, A., Hu, Y. C., and Zhang, M. 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 ( 2012 ), EuroSys '12, pp. 29-42.
[42]
Pathak, A., Jindal, A., Hu, Y. C., and Midkiff, S. P. What is keeping my phone awake?: Characterizing and detecting no-sleep energy bugs in smartphone apps. In MobiSys '12, pp. 267-280.
[43]
Pering, T., Burd, T., and Brodersen, R. The simulation and evaluation of dynamic voltage scaling algorithms. In Proceedings of the 1998 International Symposium on Low Power Electronics and Design (New York, NY, USA, 1998 ), ISLPED '98, Association for Computing Machinery, p. 76-81.
[44]
Pinto, G., Canino, A., Castor, F., Xu, G. H., and Liu, Y. D. 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 ( 2017 ), pp. 765-775.
[45]
Pinto, G., Liu, K., Castor, F., and Liu, Y. D. A comprehensive study on the energy eficiency of java thread-safe collections. In International Conference on Software Maintenance and Evolution (ICSME 2016 ) ( 2016 ).
[46]
Sahin, C., Pollock, L., and Clause, J. How do code refactorings afect energy usage ? In Proceedings of the 8th ACM/IEEE International Symposium on Empirical Software Engineering and Measurement (New York, NY, USA, 2014 ), ESEM '14, Association for Computing Machinery.
[47]
Sampson, A., Dietl, W., Fortuna, E., Gnanapragasam, D., Ceze, L., and Grossman, D. EnerJ: Approximate data types for safe and general low-power computation. In PLDI'11.
[48]
Sinha, A., and Chandrakasan, A. P. Jouletrack-a web based tool for software energy profiling. In Proceedings of the 38th Design Automation Conference (IEEE Cat. No.01CH37232) ( 2001 ), pp. 220-225.
[49]
Sorber, J., Kostadinov, A., Garber, M., Brennan, M., Corner, M. D., and Berger, E. D. Eon: a language and runtime system for perpetual systems. In SenSys '07, pp. 161-174.
[50]
Tiwari, V., Malik, S., Wolfe, A., and Lee, M. T. Instruction level power analysis and optimization of software. In Proceedings of 9th International Conference on VLSI Design ( 1996 ), pp. 326-328.
[51]
Whaley, J. A portable sampling-based profiler for java virtual machines. In Proceedings of the ACM 2000 Conference on Java Grande (New York, NY, USA, 2000 ), JAVA '00, ACM, pp. 78-87.
[52]
Zeng, H., Ellis, C. S., Lebeck, A. R., and Vahdat, A. Currentcy: A unifying abstraction for expressing energy management policies. In In Proceedings of the USENIX Annual Technical Conference ( 2003 ), pp. 43-56.
[53]
Zhu, H. S., Lin, C., and Liu, Y. D. A programming model for sustainable software. In ICSE'15 ( 2015 ), pp. 767-777.
[54]
Zhuang, X., Serrano, M. J., Cain, H. W., and Choi, J.-D. Accurate, eficient, and adaptive calling context profiling. SIGPLAN Not. 41, 6 ( June 2006 ), 263-271.

Cited By

View all
  • (2024)Accountable Carbon Footprints and Energy Profiling For Serverless FunctionsProceedings of the 2024 ACM Symposium on Cloud Computing10.1145/3698038.3698531(522-541)Online publication date: 20-Nov-2024
  • (2024)VESTA: Power Modeling with Language Runtime EventsProceedings of the ACM on Programming Languages10.1145/36564028:PLDI(621-646)Online publication date: 20-Jun-2024
  • (2023)The Odd One Out: Energy is Not Like Other MetricsACM SIGEnergy Energy Informatics Review10.1145/3630614.36306273:3(71-77)Online publication date: 25-Oct-2023
  • Show More Cited By

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image ACM Conferences
ESEC/FSE 2020: Proceedings of the 28th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering
November 2020
1703 pages
ISBN:9781450370431
DOI:10.1145/3368089
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 ACM 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

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 08 November 2020

Permissions

Request permissions for this article.

Check for updates

Badges

Author Tags

  1. Concurrency
  2. Energy Accounting
  3. Energy Profiling
  4. Power Disturbance

Qualifiers

  • Research-article

Funding Sources

  • NSF

Conference

ESEC/FSE '20
Sponsor:

Acceptance Rates

Overall Acceptance Rate 112 of 543 submissions, 21%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)55
  • Downloads (Last 6 weeks)4
Reflects downloads up to 22 Nov 2024

Other Metrics

Citations

Cited By

View all
  • (2024)Accountable Carbon Footprints and Energy Profiling For Serverless FunctionsProceedings of the 2024 ACM Symposium on Cloud Computing10.1145/3698038.3698531(522-541)Online publication date: 20-Nov-2024
  • (2024)VESTA: Power Modeling with Language Runtime EventsProceedings of the ACM on Programming Languages10.1145/36564028:PLDI(621-646)Online publication date: 20-Jun-2024
  • (2023)The Odd One Out: Energy is Not Like Other MetricsACM SIGEnergy Energy Informatics Review10.1145/3630614.36306273:3(71-77)Online publication date: 25-Oct-2023
  • (2023)Vincent: Green hot methods in the JVMScience of Computer Programming10.1016/j.scico.2023.102962230(102962)Online publication date: Aug-2023
  • (2022)Enerji Muhasebesinde GRI 302 Enerji Raporlama Standardının Rolü: BIST Sürdürülebilirlik Endeksindeki Şirketlerin Raporları Üzerinde Bir AraştırmaThe Role of GRI 302 Energy Reporting Standard in Energy Accounting: A Research on Sustainability Reports of Companies in The BIST Sustainability IndexAlanya Akademik Bakış10.29023/alanyaakademik.10991366:3(3043-3068)Online publication date: 30-Sep-2022
  • (2021)Studying eventual connectivity issues in Android appsEmpirical Software Engineering10.1007/s10664-021-10020-627:1Online publication date: 27-Nov-2021

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