Towards a Better Understanding of the Energy Consumption of Software Systems - TEL - Thèses en ligne Accéder directement au contenu
Thèse Année : 2014

Towards a Better Understanding of the Energy Consumption of Software Systems

Vers une meilleure compréhension de la consommation énergétique des systèmes logiciels

Résumé

With the rise of the usage of computers and mobile devices, and the higher price of electricity, energy management of software has become a necessity for sustainable software, devices and IT services. Energy consumption in IT is rising through the rise of web and distributed services, cloud computing, or mobile devices. Therefore, energy management approaches have been developed, ranging from optimizing software code, to adaptation strategies based on hardware resources utilization. However, these approaches do not use proper energy information for their adaptations rendering themselves limited and not energy-aware. They do not provide an energy feedback of software, and limited information is available on how and where energy is spend in software code. To address these shortcomings, we present, in this thesis, energy models, approaches and tools in order to accurately estimate the energy consumption of software at the application level, at the code level, and for inferring energy evolution models based on the method's own input parameters. We also propose Jalen and Jalen Unit, two energy frameworks for estimating how much energy each portion of a code consumes, and for inferring energy evolution models based on empirical benchmarking of software methods. By using software estimations and energy models, we are able to provide accurate energy information without the need of power meters or hardware energy investment. The energy information we provide also gives energy management approaches direct and accurate energy measurements for their adaptations and optimizations. Provided energy information also draws a model of energy consumption evolution of software based on the values of their input parameters. This gives developers knowledge on energy efficiency in software leading to choose some code over others based on their energy performance. The experimentations using the implementations of our energy models offer important information on how and where energy is spend in software. In particular, we provide empirical comparison of programming languages (PL), algorithms implementations, the cost of using a virtual machine in PL, compilers' options, and I/O primitives. They also allow the detection of energy hotspots in software, therefore focusing on the main spots where further lookups are needed for energy optimizations. Finally, we demonstrate how our benchmarking framework can detect energy evolution patterns based on input parameters strategies. With our contributions, we aim to advance knowledge in energy consumption in software by proposing models, approaches and tools to accurately measure energy at finer grains. In a nutshell, we build a software-centric energy microscope and conduct experiments aimed to understand how energy is being consumed in software, and directions to be taken for energy optimized software.
Avec l'augmentation de l'utilisation des ordinateurs et des appareils mobiles, et la hausse du prix de l'électricité, la gestion énergétique des logiciels est devenue une nécessité pour des logiciels, appareils et services durables. La consommation énergétique augmente dans les technologies informatiques, notamment à cause de l'augmentation de l'utilisation des services web et distribuée, l'informatique dans les nuages, ou les appareils mobiles. Par conséquent, des approches de gestion de l'énergie ont été développées, de l'optimisation du code des logiciels, à des stratégies d'adaptation basées sur l'utilisation des ressources matérielles. Afin de répondre à ces lacunes, nous présentons dans cette thèse, des modèles énergétiques, approches et outils pour estimer fidèlement la consommation énergétique des logiciels, au niveau de l'application, et au niveau du code, et pour inférer le modèle d'évolution énergétique des méthodes basé sur leurs paramètres d'entrées. Nous proposons aussi Jalen et Jalen Unit, des frameworks énergétiques pour estimer la consommation énergétique de chaque portion de code de l'application, et pour inférer le modèle d'évolution énergétique des méthodes en se basant sur des études et expériences empiriques. En utilisant des modèles énergétiques et d'outils d'estimations logicielles, nous pouvons proposer des informations énergétiques précises sans avoir besoin de wattmètres ou d'investissement de matériels de mesures énergétiques. Les informations énergétiques que nous proposons, offrent aussi aux approches de gestion énergétique des mesures directes et précises pour leurs approches d'adaptations et d'optimisations énergétiques. Ces informations énergétiques établissent aussi un modèle d'évolution énergétique des logiciels en se basant sur leurs paramètres d'entrées. Cela offre aux développeurs une connaissance plus profonde sur l'efficacité énergétique dans les logiciels. Cette connaissance amènera les développeurs à choisir un certain code au lieu d'un autre en se basant sur son efficacité énergétique. Les expérimentations utilisant l'implémentation de nos modèles énergétiques offrent des informations importantes sur comment et où l'énergie est consommée dans les logiciels. Plus particulièrement, nous proposons des comparaisons empiriques des langages de programmation (LP), des implémentations d'algorithmes, du coût de l'utilisation d'une machine virtuelle dans les LP, des options des compilateurs, et des primitives d'entrées/sorties. Nos outils permettent aussi de détecter les hotspots énergétiques dans les logiciels, permettant ainsi de focaliser sur les principaux endroits où davantage d'études sont nécessaires pour l'optimisation énergétique. Finalement, nous démontrons comment notre framework d'étude empirique permet de détecter les modèles d'évolution énergétique en se basant sur les stratégies d'évolution des paramètres d'entrées. Grâce à notre contribution, nous visons d'évoluer la connaissance dans le domaine de la consommation énergétique dans les logiciels, en proposant des modèles, des approches et des outils pour mesurer avec précision la consommation énergétique à des grains plus fins. En un mot, nous avons construit un microscope logiciel et énergétique, et avons mener des expérimentations afin de comprendre comment l'énergie est consommée dans les logiciels, et les chemins à prendre pour produire des logiciels optimisés énergétiquement.
Fichier principal
Vignette du fichier
noureddine-thesis-2014.pdf (2.69 Mo) Télécharger le fichier
Loading...

Dates et versions

tel-00961346 , version 1 (19-03-2014)
tel-00961346 , version 2 (07-05-2014)

Identifiants

  • HAL Id : tel-00961346 , version 2

Citer

Adel Noureddine. Towards a Better Understanding of the Energy Consumption of Software Systems. Software Engineering [cs.SE]. Université des Sciences et Technologie de Lille - Lille I, 2014. English. ⟨NNT : ⟩. ⟨tel-00961346v2⟩
707 Consultations
1880 Téléchargements

Partager

Gmail Facebook X LinkedIn More