Davidson & Inria: a collaboration towards an eco-friendly Python
Energy consumption in ICT sector is constantly increasing. The data centers contribute in 6% of global energy consumption (and it will be expected to reach 15% by 2030). Despite this alarming fact, energy footprint remains one of the most neglected parameters by software developers.
In this context, Davidson and Inria (the French national research institute for the digital sciences) are conducting a joint research project on the evaluation and optimization of the energy footprint of different programming languages.
The goal is to develop an “Eco-friendly Python” module that identifies and submits coding recommendations to developers, in order to optimize the energy consumption of their software. Due to its growing popularity, the research team focused particularly on Python in the aim to achieve a tradeoff between performance, security requirement and power efficiency for a wide range of applications.
In order to achieve this goal, the team proposed a measurement environment based on wattmeter software : PowerAPI that estimates in real time the power consumed by a software, by collecting metrics from both hardware components (processors, memory, etc.) operating system.
Using this measurement tool, the research team has compared the energy footprint of a variety of algorithms in different Python versions, and studied the impact of using specific libraries and variable classes over others.
Moreover, the team also collected consumption metrics by varying the compilation and execution environments: physical machines, virtual machines, use of logical containers, ….
This dataset allowed them to derive the weight of each of these techniques and hardware components (according to their characteristics) in the overall energy budget.
Currently, the research team is working on a set of Python algorithms developed by the Davidson IA-Twister team (Natural Language Processing, Data classification and prediction, Optimization, Text mining, etc.). The aim is to propose, for each class of algorithms, recommendations on the compilation and execution environments to be used, the libraries to choose, but also some coding instructions, such as the order of conditions and loops in order to assist the developers to design more eco-Friendly software.
To get more information on our R&D projects : firstname.lastname@example.org