Software eco-design : investigating and reducing the energy consumption of software - Archive ouverte HAL Accéder directement au contenu
Thèse Année : 2021

Software eco-design : investigating and reducing the energy consumption of software

Eco-conception des logiciels : investiguer et réduire la consommation énergétique des logiciels

Résumé

Energy consumption is an emerging concern in multiple domains and fields, including ICT and data centers. In fact, the energy consumption of data centers has drastically increased in the last decade for both hardware and software entities, especially due to the democratization of cloud services and the huge amount of transiting data. Formerly, The energy consumption was mainly related to the used hardware, and its capacity to maintain a low power consumption while achieving tasks. However, the running software is in fact as important as hardware, and is as responsible for very substantial gains or drawbacks in energy consumption. The ultimate goal of this thesis is to help developers and practitioners understand and actively think about green software design in their work, in order to reduce the energy consumption of their software and deliver energy efficient products. We thus contribute to supplement green software design knowledge. To achieve this, we start with conducting a qualitative study with developers, to discuss the multiple hurdles they are facing and their requirements to promote green software design within companies.To reduce software energy consumption, practitioners have to measure it and track its evolution first. In our second contribution we investigate the problem of energy consumption variations. We provide guidelines on controllable factors that one could easily tune to reduce this variation and conduct steady and reproducible energy measurements.Once practitioners are able to measure the energy consumption of their software, they can work on reducing it and produce energy efficient software. Thus, this thesis delivers 3 more contributions, focusing on the Java language. The first contribution aims at helping developers choose and configure their execution environment. We identified substantial differences in energy consumption using multiple JVM platforms with different JIT and GC configurations for different use cases. The second and third contributions study the impact on energy consumption of small changes that developers often apply on their source code (code refactoring and API/methods substitutions respectively). We show through these studies that structure oriented code refactorings do not substantially alter software energy consumption. On the other hand, Java I/O methods substitution drastically changed the energy consumption depending on the use case.This thesis contributes to enrich the knowledge on green software design and provides insights and approaches to enhance the energy efficiency at multiple levels of software development.
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.
Fichier principal
Vignette du fichier
These_OURNANI_Zakaria.pdf (2.08 Mo) Télécharger le fichier
Origine : Version validée par le jury (STAR)

Dates et versions

tel-03554712 , version 1 (15-11-2021)
tel-03554712 , version 2 (03-02-2022)

Identifiants

  • HAL Id : tel-03554712 , version 2

Citer

Zakaria Ournani. Software eco-design : investigating and reducing the energy consumption of software. Programming Languages [cs.PL]. Université de Lille, 2021. English. ⟨NNT : 2021LILUB018⟩. ⟨tel-03554712v2⟩
463 Consultations
1856 Téléchargements

Partager

Gmail Facebook X LinkedIn More