Awakening Awareness on Energy Consumption in Software Engineering

Status:: 🟩
Links:: Software engineers social and environmental responsibility

Metadata

Authors:: Jagroep, Erik; Broekman, Jordy; Van Der Werf, Jan Martijn E.M.; Lago, Patricia; Brinkkemper, Sjaak; Blom, Leen; Van Vliet, Rob
Title:: Awakening Awareness on Energy Consumption in Software Engineering
Date:: 2017
URL:: https://ieeexplore.ieee.org/document/7961670/
DOI:: 10.1109/ICSE-SEIS.2017.10

Bibliography

Jagroep, E., Broekman, J., Van Der Werf, J. M. E. M., Lago, P., Brinkkemper, S., Blom, L., & Van Vliet, R. (2017). Awakening Awareness on Energy Consumption in Software Engineering. 2017 IEEE/ACM 39th International Conference on Software Engineering: Software Engineering in Society Track (ICSE-SEIS), 76–85. https://doi.org/10.1109/ICSE-SEIS.2017.10

Zotero

Type:: #zotero/conferencePaper
Zotero::

Keywords:: [⏳, Measurement, Energy Efficiency]

Relations

Related:: @Pang.etal.2016.WhatProgrammersKnow

Abstract

Software producing organizations have the ability to address the energy impact of their ICT solutions during the development process. However, while industry is convinced of the energy impact of hardware, the role of software has mostly been acknowledged by researchers in software engineering. Strengthened by the limited practical knowledge to reduce the energy consumption, organizations have less control over the energy impact of their products and lose the contribution of software towards energy related strategies. Consequently, industry risks not being able to meet customer requirements or even fulfillcorporate sustainability goals. In this paper we perform an exploratory case study on how to create and maintain awareness on an energy consumption perspective for software among stakeholders involved with the development of software products. During the study, we followed the development process of two commercial software products and provided direct feedback to the stakeholders on the effects of their development efforts, specifically concerning energy consumption and performance, using an energy dashboard. Multiple awareness measurements allowed us to keep track of changes over time on specific aspects affecting software development. Our results show that, despite a mixed sentiment towards the dashboard, changed awareness has triggered discussion on the energy consumption of software.

Notes & Annotations

📑 Annotations (imported on 2023-07-19#10:33:52)

jagroep.etal.2017.awakeningawarenessenergy (pg. 1)

One way to address energy consumption in software, i.e. Software Energy Consumption (SEC), is through its software architecture [4]. By applying an Energy Consumption Perspective (ECP) [5], the SEC can be addressed in the early stages of software engineering. In this way, sustainability can be considered as a Quality Attribute [6], and consequently, it can be included in trade-off analysis and architecture evaluation [7].

[4] L. Bass, P. Clements, and R. Kazman, Software Architecture in Practice, ser. SEI Series in Software Engineering. Pearson Education, 2012.
@Bass.etal.2021.SoftwareArchitecturePractice
[5] E. Jagroep, J. M. van der Werf, S. Brinkkemper, L. Blom, and R. van Vliet, “Extending software architecture views with an energy consumption perspective,” Computing, pp. 1–21, 2016.
@Jagroep.etal.2017.ExtendingSoftwareArchitecture
[6] ISO, “Systems and software engineering – systems and software quality requirements and evaluation (SQuaRE) – system and software quality models,” International Organization for Standardization, Geneva, Switzerland, ISO 2510:2011, 2011.
[7] R. Kazman, M. Klein, M. Barbacci, and T. Longstaff, “The architecture tradeoff analysis method,” in 4th IEEE International Conference on Engineering of Complex Computer Systems (ICECCS) 1998. IEEE, 1998, pp. 68–78.

jagroep.etal.2017.awakeningawarenessenergy (pg. 1)

In this paper, we present the findings of a multiple-case study on creating and maintaining awareness of the energy consumption of software products among stakeholders during development, as it has the greatest impact [17].

[17] S. Naumann, M. Dick, E. Kern, and T. Johann, “The greensoft model: A reference model for green and sustainable software and its engineering,” Sustainable Computing: Informatics and Systems, vol. 1, no. 4, pp. 294304, 2011.
@Naumann.etal.2011.GREENSOFTModelReference

jagroep.etal.2017.awakeningawarenessenergy (pg. 2)

If we position sustainability as a software quality property [3], [5] we can go back further in the lifecycle, i.e. the design phase, where the software architecture allows for precluding qualitative traits of the software [4]. Similar to technical debt [21], early awareness of green software could save a significant amount of costs compared to refactoring the software at a later stage.

[3] P. Lago, S. A. Koc ̧ak, I. Crnkovic, and B. Penzenstadler, “Framing sustainability as a property of software quality,” Commun. ACM, vol. 58, no. 10, pp. 70–78, sep 2015.

jagroep.etal.2017.awakeningawarenessenergy (pg. 2)

A recurring theme with green software is monitoring the SEC to support engineers with understanding their code and its energy impact [22]. However, unlike example the mobile domain [23], monitoring is more difficult with software products [1], [8] and different approaches exist to estimate the SEC. Most prominent are power models that profile the software based on resource usage, e.g. [9], [10], but new approaches are surfacing using big data principles [24].

[8] E. A. Jagroep, J. M. E. M. van der Werf, S. Brinkkemper, G. Procaccianti, P. Lago, L. Blom, and R. van Vliet, “Software energy profiling: Comparing releases of a software product,” in Proceedings of the 38th International Conference on Software Engineering Companion, ser. ICSE ’16. New York, NY, USA: ACM, 2016, pp. 523–532.
[9] E. Jagroep, J. M. E. M. van der Werf, S. Jansen, M. Ferreira, and J. Visser, “Profiling energy profilers,” in Proceedings of the 30th Annual ACM Symposium on Applied Computing. ACM, 2015, pp. 2198–2203.
[10] A. Noureddine, R. Rouvoy, and L. Seinturier, “Monitoring energy hotspots in software,” Automated Software Engineering, pp. 1–42, 2015.
[22] I. Manotas, C. Bird, R. Zhang, D. Shepherd, C. Jaspan, C. Sadowski, L. Pollock, and J. Clause, “An empirical study of practitioners’ perspectives on green software engineering,” in Proceedings of the 38th International Conference on Software Engineering, ser. ICSE ’16. New York, NY, USA: ACM, 2016, pp. 237–248.
[23] A. Pathak, Y. C. Hu, and M. Zhang, “Where is the energy spent inside my app?: fine grained energy accounting on smartphones with eprof,” in Proceedings of the 7th ACM european conf. on Computer Systems, ser. EuroSys ’12. New York, NY, USA: ACM, 2012, pp. 29–42.
[24] S. A. Chowdhury and A. Hindle, “Greenoracle: Estimating software energy consumption with energy measurement corpora,” in Proceedings of the 13th International Conference on Mining Software Repositories, ser. MSR ’16. New York, NY, USA: ACM, 2016, pp. 49–60

jagroep.etal.2017.awakeningawarenessenergy (pg. 2)

In practice, performance is often used as a proxy for energy efficiency; i.e. less resource usage equals to less energy consumption. However, energy consumption and performance are not always positively correlated [26]–[28] and should thus be considered separately.

[26] A. E. Trefethen and J. Thiyagalingam, “Energy-aware software: Challenges, opportunities and strategies,” Journal of Computational Science, vol. 4, no. 6, pp. 444 – 449, 2013, scalable Algorithms for Large-Scale Systems Workshop (ScalA2011), Supercomputing 2011.
[27] K. K. Rangan, G.-Y. Wei, and D. Brooks, “Thread motion: Fine-grained power management for multi-core systems,” SIGARCH Comput. Archit. News, vol. 37, no. 3, pp. 302–313, 2009.
[28] T. Cao, S. M. Blackburn, T. Gao, and K. 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, ser. ISCA ’12. Washington, DC, USA: IEEE Computer Society, 2012, pp. 225–236.

jagroep.etal.2017.awakeningawarenessenergy (pg. 3)

To perform energy consumption measurements we applied a software-based approach using Microsoft Joulemeter (JM), similar to the approach applied in our earlier research [5], [8]. After calibration, JM allows us estimate the total energy consumed by a system at run time based on the computational resources used with a one second interval between measurements. To determine the SEC we subtract the idle energy consumption of a system from the energy consumed while running the software, both obtained using JM. The difference is in the energy consumed on the account of the software product, i.e. its SEC.

[8] E. A. Jagroep, J. M. E. M. van der Werf, S. Brinkkemper, G. Procaccianti, P. Lago, L. Blom, and R. van Vliet, “Software energy profiling: Comparing releases of a software product,” in Proceedings of the 38th International Conference on Software Engineering Companion, ser. ICSE ’16. New York, NY, USA: ACM, 2016, pp. 523–532.

jagroep.etal.2017.awakeningawarenessenergy (pg. 9)

A knowledge bank on this topic, containing e.g., tactics, patterns and best practices, provides concrete guidelines, and potentially makes green software practices more cost effective. Relating the knowledge bank to the views in the ECP helps to make trade-offs on the different aspects related to software design and strengthens the relation with sustainability goals.

jagroep.etal.2017.awakeningawarenessenergy (pg. 9)

To maintain SEC awareness, our results show that organizational policy is required to support creating green software products strengthened with a knowledge bank to stimulate informed decision making on software design.