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.
Directeur de Thèse : Lionel Seinturier Rapporteurs : Ivica Crnkovic François Taïani Membres : Pierre Boulet Jean-Marc Pierson Alain Anglade (invité)
Thesis of the team Spirals defended on 19/03/2014