The goal of this projet is to provide a set of tools to go forward a greener computing. The idea is to provide software-defined power meters to mesure the power consumption of program. The core of this project is the PowerAPI toolkit for building such power meters.
If you want to monitor the energy consumption of your process we have some ready-to-use tools
- RAPL formula for monitoring the energy consumption of your device.
- SmartWatts formula for monitoring the energy consumption of your process.
- Jouleit for mesuring the energy consumption of a program.
A power meter is an application build with the PowerAPI components that can measure the power consumption of software running on a single machine or on a cluster of machine.
This section present each PowerAPI component type and how connect them to build a power meter.
A power meter is a set of two components, a sensor and a formula, used to produce an estimation of the power consumption of a monitored software.
The sensor collects raw data correlated with the power consumption of the software. The formula is a computational module that use the collected data to determine power consumption. Both of them are connected by a database that is used to transfer information. The global architecture of a power meter is represented bellow.
The two next sub-sections present how a sensor and a formula work and how they should be used.
A sensor is an independent software that collects raw data correlated with the power consumption of monitored software.
Data are collected by querying the hardware’s machine that hosts the monitored software. The sensor must be executed on the same machine as the monitored software. The data are collected throughout the duration of the software. For this reason, the sensor must operate in parallel.
Collected data are stored in an external database to make the data available to the formula. This database may be hosted on an other machine.
Because they collect from different hardware, each sensor are very different from one another. Refer to each sensor documentation to know how to use them.
A formula is an independent software that compute an estimation of the power consumption of monitored software from the data collected by the sensor.
A formula communicate with the sensor via a database (e.g MongoDB). The sensor writes the collected data to the database and the formula reads it afterward.
There are two connection modes:
streammode where the formula read the data from the sensor as they are produced.
post-mortemmode which analyses the data already collected by the sensor in a past monitoring phase.
You can follow the latest news and asks questions by subscribing to our mailing list.
If you would like to contribute code you can do so through our Github repository by forking it and sending a pull request.
You should start by reading the contribution guide
- The Next 700 CPU Power Models: M. Colmant, R. Rouvoy, M. Kurpicz, A. Sobe, P. Felber, L. Seinturier. Elsevier Journal of Systems and Software (JSS). 144(10):382-396, Elsevier.
- WattsKit: Software-Defined Power Monitoring of Distributed Systems: M. Colmant, P. Felber, R. Rouvoy, L. Seinturier. IEEE/ACM International Symposium on Cluster, Cloud and Grid Computing (CCGrid). April 2017, Spain, France. pp.1-14.
- Process-level Power Estimation in VM-based Systems: M. Colmant, M. Kurpicz, L. Huertas, R. Rouvoy, P. Felber, A. Sobe. European Conference on Computer Systems (EuroSys). April 2015, Bordeaux, France. pp.1-14.
- Monitoring Energy Hotspots in Software: A. Noureddine, R. Rouvoy, L. Seinturier. Journal of Automated Software Engineering, Springer, 2015, pp.1-42.
- Unit Testing of Energy Consumption of Software Libraries: A. Noureddine, R. Rouvoy, L. Seinturier. International Symposium On Applied Computing (SAC), March 2014, Gyeongju, South Korea. pp.1200-1205.
- Informatique : Des logiciels mis au vert: L. Seinturier, R. Rouvoy. J'innove en Nord Pas de Calais, NFID, 2013.
- PowerAPI: A Software Library to Monitor the Energy Consumed at the Process-Level: A. Bourdon, A. Noureddine, R. Rouvoy, L. Seinturier. ERCIM News, Special Theme: Smart Energy Systems, 92, pp.43-44. ERCIM, 2013.
- Mesurer la consommation en énergie des logiciels avec précision: A. Bourdon, R. Rouvoy, L. Seinturier. 01 Business & Technologies, 2013.
- A review of energy measurement approaches: A. Noureddine, R. Rouvoy, L. Seinturier. ACM SIGOPS Operating Systems Review, ACM, 2013, 47 (3), pp.42-49.
- Runtime Monitoring of Software Energy Hotspots: A. Noureddine, A. Bourdon, R. Rouvoy, L. Seinturier. International Conference on Automated Software Engineering (ASE), September 2012, Essen, Germany. pp.160-169.
- A Preliminary Study of the Impact of Software Engineering on GreenIT: A. Noureddine, A. Bourdon, R. Rouvoy, L. Seinturier. International Workshop on Green and Sustainable Software (GREENS), June 2012, Zurich, Switzerland. pp.21-27.
PowerAPI is an open-source project developed by the Spirals research group (University of Lille and Inria)
This software is licensed under the BSD 3-Clause License, quoted below.
BSD 3-Clause License
Copyright (c) 2021, INRIA Copyright (c) 2021, University of Lille All rights reserved.
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.