Energy-aware software: Challenges, opportunities and strategies

Status:: 🟩
Links:: Optimizing for Performance vs. Optimizing for Energy Efficiency

Metadata

Authors:: Trefethen, Anne E.; Thiyagalingam, Jeyarajan
Title:: Energy-aware software: Challenges, opportunities and strategies
Publication Title:: "Journal of Computational Science"
Date:: 2013
URL:: https://www.sciencedirect.com/science/article/pii/S1877750313000173
DOI:: 10.1016/j.jocs.2013.01.005

Bibliography

Trefethen, A. E., & Thiyagalingam, J. (2013). Energy-aware software: Challenges, opportunities and strategies. Journal of Computational Science, 4(6), 444–449. https://doi.org/10.1016/j.jocs.2013.01.005

Zotero

Type:: #zotero/journalArticle
Keywords:: [Green Software, Energy Efficiency]

Relations

Abstract

Energy consumption of computing systems has become a major concern. Constrained by cost, environmental concerns and policy, minimising the energy foot-print of computing systems is one of the primary goals of many initiatives. As we move towards exascale computing, energy constraints become very real and are a major driver in design decisions. The issue is also apparent at the scale of desk top machines, where many core and accelerator chips are common and offer a spectrum of opportunities for balancing energy and performance. Conventionally, approaches for reducing energy consumption have been either at the operational level (such as powering down all or part of systems) or at the hardware design level (such as utilising specialised low-energy components). In this paper, we are interested in a different approach; energy-aware software. By measuring the energy consumption of a computer application and understanding where the energy usage lies, may allow a change of the software to provide opportunities for energy savings. In order to understand the complexities of this approach, we specifically look at multithreaded algorithms and applications. By an evaluation of a benchmark suite on multiple architectures and multiple environments, we show how basic parameters, such as threading options, compilers and frequencies, can impact energy consumption. As such, we provide an overview of the challenges that face software developers in this regard. We then offer a view of the directions that need to be taken and possible strategies needed for building energy-aware software.

Notes & Annotations

📑 Annotations (imported on 2023-07-19#17:41:38)

trefethen.thiyagalingam.2013.energyawaresoftwarechallenges (pg. 4)

In summary, the following can be concluded from these results:

(1) There is a clear interaction between runtime and energy but this is not a simple relationship and can be affected by the compute environment and algorithmic approach used in the application.
(2) The problem size, locality and thread-count all affect the overall energy consumption.
(3) Compilers and the options used can have a significant impact on the energy consumption of (multithreaded) applications. By the same token, the software transformations play a key role both in runtime performance and energy consumption.
(4) Although threading improves performance, the energy consumption may not improve. The energy consumption is highly dependent on the degree of parallelism and on the underlying architecture.
(5) The hyper-threading, when present, clearly improves the energy efficiency in highly computational applications.
And finally, (6) by appropriately identifying the interaction between multiple parameters (such as frequency, threading and compilers) it is possible to secure substantial energy savings along with considerable performance gain.