Determining the Influence of Software Configurations on Energy Consumption (funded by the DFG: 590,000€, 2018-2022)
Reducing energy consumption is an increasingly important goal of our society. It is predicted that IT energy usage will almost double by the year 2020, not only due to numerous data centers, but also because of billions of end devices. At the same time, software and hardware systems grow ever more complex by providing configuration capabilities, which makes it difficult to select a software and hardware system that not only satisfies the functional requirements, but also considers its energy consumption. In general, there are two important causes of energy wasting of IT systems: sub-optimal configuration of configurable systems (users‘ perspective) and inefficient implementation (developers‘ perspective).
Green Configuration will target both causes to reduce the energy consumption of IT systems. In this project, we will develop techniques to measure, predict, and optimize the influence of features and their interactions on the energy consumption of a configurable system. Furthermore, we will develop methods and analysis techniques to support developers in identifying the cause of energy problems in the source code.
The heart of the project is the energy-influence model, which captures the influence of software, hardware, and workload features on energy consumption. We will determine the influence using a combination of black-box and white-box measurements with modern learning strategies (e.g., active learning and transfer learning). We will use tailored sampling techniques and related them to the results of control-flow and data-flow analysis techniques to determine optimal configurations and trace the origin of energy leaks. The goal is to learn an accurate influence model with few measurements, which can then be use to relate the individual influences to regions of the source code.
The influence model builds the foundation of the Green Configurator, a tool to show the consequences of configuration decisions to users. The Green Analyzer builds also on the influence model to support developers in maintenance tasks, for example, by highlighting regions in the source code with high energy consumption.
Green Configuration commits to the German goal of reducing energy consumption. By making consequences of configuration decisions visible to the user, we aim at inducing long-term behavioral changes that potentially save more energy than pure software-based optimizations. The foundational character of the project can fertilize further research in related fields. For instance, we investigate the issue of the effect of software-hardware configuration on quality attributes and provide accurate and realistic surrogate models for multi-objective optimization. By combining software analysis with machine learning, we also expect new insights about the effect of program flow and control flow on energy consumption.
As a result of the Green Configuration, we make available the following resources:
The Green Configurator is a prototype of an application that lets you you configure a software system and estimates several non-functional properties.
White-box performance-influence models are an approach for modeling configuration-dependent properties of software systems at the method level.
Our python library P4 provides a sklearn-like Bayesian regressor. We are currently working on packaging it as a PyPI package, but it can already be used as a Docker container:
FFAME is a fine-grained fast measurement system for Energy consumption. At the moment, its hardware and software design are developed in our internal git repository. However, it will become public very soon:
Green Configuration is funded by the German Research Foundation (DFG) under the contracts SI 2171/3-1. The funding period is from 2018 to 2021.
Prof. Dr.-Ing. Norbert Siegmund
Chair of Software Systems
M. Sc. Johannes Dorn
M. Sc. Max Weber