Développement durable des logiciels

Vers une optimisation énergétique de bout en bout des systèmes logiciels

Encadrants

Adresse

Inria Lille – Nord Europe

40, avenue Halley

59655 Villeneuve d’Ascq

Contexte

Cette thèse s’inscrit dans le cadre d’une nouvelle collaboration initiée entre l’équipe-projet Spirals (http://team.inria.fr/spirals) du centre de recherche Inria Lille - Nord Europe et la société Davidson Consulting (http://www.davidson.fr).

En particulier, cette collaboration s’intéresse à la problématique de l’optimisation de l’empreinte énergétique des infrastructures logicielles modernes. De nos jours, ces infrastructures logicielles peuvent couvrir des environnements très hétérogènes correspondant aussi bien à des objets communicants, des équipements mobiles et/ou des serveurs virtualisés, eux-même hébergés sur des infrastructures physiques très diverses.

Dans ce contexte de complexité grandissante, nous souhaitons donc pouvoir analyser et optimiser le coût énergétique des logiciels qui sont déployés en production afin de mieux maîtriser l’empreinte carbone des technologies de l’information et de la communication (TIC) tout en préservant leur qualité de service (performance, sécurité, etc.).

Objectifs

Ce sujet de thèse aborde notamment cette problématique sous l’angle du génie logiciel en proposant d’étudier l’empreinte énergétique des techniques de développement modernes afin de contribuer à l’émergence de processus de développement et d’environnements d’exécution minimisant l’empreinte énergétique des logiciels.

En premier lieu, cette thèse vise à évaluer l’empreinte énergétique des langages de programmation modernes en proposant un banc de mesure et de comparaison de référence qui permettra de recommander un langage de programmation approprié vis-à-vis des exigences qui pourraient être imposées [1]. Cette phase consistera à identifier différentes classes de traitements exécutables par les langages de programmation et concevoir un micro-benchmark capable de produire des mesures de consommation fiables et reproductibles, en s’appuyant notamment sur un wattmètre logiciel comme PowerAPI [2]. Les langages de programmation multi-cibles (e.g., Kotlin) et les compilateurs source-à-source pourront être abordés dans le cadre de cette première étude.

Dans un second temps, ce banc de mesure sera étendu à la couverture de modèles de programmation plus avancés, comme les frameworks web et mobiles, afin d’adresser des environnements représentatifs des technologies couvertes par les systèmes logiciels modernes. Cette phase identifiera différentes classes d’applications et de technologies alternatives dans chaque couche d’une pile logicielle (communication, sécurité, stockage, etc.) afin d’identifier les éventuels compromis à prendre en compte dans un processus de décision et ainsi caractériser les éventuelles fuites énergétiques au sein de ces couches.

Dans un troisième temps, il s’agira d’étudier l’application de techniques de manipulation et de recommandation de code source afin d’aider une équipe de développement à  produire un code applicatif dont l’empreinte énergétique sera optimale pour un déploiement en production. Cette dernière phase pourra avoir recours à des techniques d’analyse statique du code [3] et/ou d’analyse dynamique. L’optimisation des paramètres de configurations de ces couches logicielles pourront également être prises en compte. L’automatisation des décisions prises dans cette phase seront guidées par la connaissance extraite par les phases précédentes.

Références

  1. S. Hasan, Z. King, M. Hafiz, M. Sayagh, B. Adams, A. Hindle. Energy profiles of Java collections classes. ICSE 2016: 225-236.
  2. M. Colmant. Multi-Dimensional Analysis of Software Power Consumptions in Multi-Core Architectures. PhD thesis, Université de Lille 1. November 2016. https://tel.archives-ouvertes.fr/tel-01403559 
  3. R. Pawlak, M. Monperrus, N. Petitprez, C. Noguera, L. Seinturier. Spoon: A Library for Implementing Analyses and Transformations of Java Source Code. In Software: Practice and Experience, Wiley-Blackwell, 2015. Doi: 10.1002/spe.2346. https://hal.archives-ouvertes.fr/hal-01078532