La consommation d’énergie est une préoccupation émergente dans de nombreux domaines, y compris pour les technologies d’informations et communications et les centres de données. En effet, la consommation d’énergie des centres de données a considérablement augmenté au cours de la dernière décennie, tant pour les entités matérielles que logicielles, notamment en raison de la démocratisation des services en ligne et de l’énorme quantité de données qui transitent. Auparavant, la consommation d’énergie était principalement liée au matériel utilisé, et à sa capacité à maintenir une faible consommation d’énergie pour réaliser des tâches. En réalité, le logiciel est aussi important que le matériel, et il est autant responsable d’une diminution ou augmentation de l’énergie consommée. L’objectif ultime de cette thèse est d’aider les développeurs et les praticiens à comprendre et à introduire la conception de logiciels verts dans leur travail, afin de réduire la consommation d’énergie de leurs logiciels et de fournir des produits économes en énergie. Nous contribuons ainsi à compléter les connaissances sur la conception de logiciels verts. Pour y parvenir, nous commençons par mener une étude qualitative auprès des développeurs, afin de discuter des multiples obstacles auxquels ils sont confrontés et de leurs besoins pour promouvoir la conception de logiciels verts au sein des entreprises. Pour réduire la consommation énergétique des logiciels, les praticiens doivent d’abord être capable de la mesurer et suivre son évolution. Dans notre deuxième contribution, nous étudions le problème des variations de la consommation d’énergie. Nous fournissons des lignes directrices sur des facteurs contrôlables que l’on peut facilement actionner pour réduire cette variation et effectuer des mesures énergétiques stables et reproductibles. Une fois que les praticiens sont capables de mesurer la consommation d’énergie de leurs logiciels, ils peuvent procéder à sa réduction et à produire des logiciels économes en énergie. Ainsi, cette thèse apporte 3 contributions centrées sur le langage Java. La première contribution vise à aider les développeurs à choisir et à configurer leur environnements d’exécution. Nous avons identifié d’importantes différences dans la consommation d’énergie en utilisant différentes plateformes JVM avec différentes configurations JIT et GC. Les deuxième et troisième contributions étudient l’impact sur la consommation d’énergie de petits changements que les développeurs appliquent souvent sur leur code source (refactoring de code et remplacement d’API/méthodes respectivement). Nous montrons à travers ces études que le refactoring structurel du code source n’impacte pas la consommation énergétique des logiciels de manière considérable. En revanche, le remplacement des méthodes de lecture/écriture dans Java impacte considérablement la consommation d’énergie selon le cas d’utilisation. Cette thèse contribue à enrichir les connaissances sur la conception de logiciels verts et fournit des approches et des conclusions pour améliorer l’efficacité énergétique à plusieurs niveaux du développement de logiciels.
M. Romain ROUVOY Université de Lille Directeur de Thèse M. Thomas LEDOUX IMT Atlantique Rapporteur Mme Anne-Cécile ORGERIE IRISA Rapporteure Mme Sophie QUINTON INRIA Examinatrice Mme Anne ÉTIEN INRIA Examinatrice M. Joël PENHOAT Orange Labs Co-directeur de Thèse M. Pierre RUST Orange Labs Invité
Thesis of the team Spirals defended on 08/10/2021