The number of Single Board Computers (SBCs) is increasing, and so is the cumulative energy consumed by this category of device. Moreover, such devices are often always-on or running on batteries. Therefore, it is worth investigating their energy consumption to provide software developers and users with indicators for understanding how much energy the device is consuming while running a software application. In this paper, we explain a procedure for the creation of an energy consumption model of SBCs based on the usage of its components. We apply the procedure on a Raspberry PI 2 model B to test the model with a set of real applications. The results demonstrate the practical feasibility of the approach and show that estimated consumption values on our device have an average error of 2.2%, which is a good approximation without using external and expensive measuring devices.
How a program is written has implications in the energy consumption of the running system, with economical and environmental consequences.
In this context, understanding the energy consumption of operations on data-structures is crucial when optimizing software to execute under power constricted environments. Existing studies have not focused on the different components of energy consumption that processors expose, rather considering the global consumption.
To understand the relationship between CPU and memory energy consumptions with execution time, we instrument a microbenchmark suite to collect such values, and we analyze the results.
Our benchmark suite is comprised of 16 implementations of functional sequences, collections and associative collections while measuring detailed energy and time metrics. We further investigate the energy consumption impact of using different compilation optimizations.
We have concluded that energy consumption is directly proportional to execution time. Additionally, DRAM and Package energy consumptions are directly proportional, with the DRAM representing between 15 and 31% of the total energy consumption. Finally, we also conclude that optimizations can have both a positive or a negative impact on energy consumption.
Society is becoming more and more aware of the importance of preserving the environment, and is therefore increasingly concerned about issues related to sustainability. Software development should not remain indifferent to the need to construct software products that contribute towards sustainability, both during their creation and throughout their use. However, one of the main gaps is the difficulty of measuring the energy consumption when software is executed in order to detect, for example, parts of the software with excessive energy consumption. For that reason, a Framework for Energy Efficiency Testing to Improve eNviromental Goals of the Software (FEETINGS) has been proposed. In this paper, we focus on the core of the framework, that is, the Energy Efficiency Tester (EET), which is the measurement hardware device devoted to collecting the specific consumption data of the software under evaluation. The architecture and the main functions of EET, along with the reliability validation done with it are presented here, as well as an analysis of the data extracted from a case study conducted. The outcome of such analysis shows that EET is able to carry out stable energy consumption measurements of executed software.
A considerable portion of research activities in computer science heavily relies on the process of benchmarking, e.g., to evaluate a hypothesis in an empirical study. The goal is to reveal how a set of independent variables (factors) influences one or more dependent variables. With a vast number of factors or a high amount of factors' values (levels), this process becomes time- and energy-consuming. Current approaches to lower the benchmarking effort suffer from two deficiencies: (1) they focus on reducing the number of factors and, hence, are inapplicable to experiments with only two factors, but a vast number of levels and (2) being adopted from, e.g., combinatorial optimization they are designed for a different search space structure and, thus, can be very wasteful. This paper provides an approach for benchmark reduction, based on adaptive instance selection and multiple linear regression. We evaluate our approach using four empirical studies, which investigate the effect made by dynamic voltage and frequency scaling in combination with dynamic concurrency throttling on the energy consumption of a computing system (parallel compression, sorting, and encryption algorithms as well as database query processing). Our findings show the effectiveness of the approach. We can save 78% of benchmarking effort, while the result's quality decreases only by 3 pp, due to using only a near-optimal configuration.
Sustainability has become a major concern of the 21st century. With the digital revolution, ICT is actually part of both the problem and the solution. Despite this, sustainability-related design decisions are often left implicit and result from a process involving synergies and trade-offs among many non-functional requirements, including some constraints related to the software development and operation itself. The purpose of this paper is to identify such decisions and analyse the process that resulted into them based on a real-world industrial case with strong sustainability goals: a shared pick-up and delivery service. We also show how available methods for green software engineering help in better shaping this process and highlight some interesting lessons learned from our experience.
The increasing energy demands of software systems have set an essential software quality requirement: energy efficiency. At the same time, the many contextual changes faced by software systems during execution can hamper their functionality and overall quality. To address both problems, self-adaptation approaches can empower software systems, at both design-time and runtime, to adapt to dynamic conditions. In this way, software systems can be more resilient to failure, hence more trustful to satisfy the demands of modern digital society. In this paper, we perform a systematic literature review to study the state-of-the-art on existing self-adaptation approaches for energy efficiency. We analyze the identified approaches from three different perspectives, namely publication trends, application domains, and types of software systems. Our findings can help solution providers to make guided decisions to enable self-adaptability in designing and engineering software systems.