Au CNRS, l’importante question de la sobriété énergétique des applications

La chasse aux « obésiciels »
Logiciel 5 min
Au CNRS, l’importante question de la sobriété énergétique des applications
Crédits : gorodenkoff/iStock

C’est un vrai problème : avec la croissance continue des usages numériques, les applications représentent une part importante de la consommation énergétique. Au-delà de leur nombre et de leurs usages, la question de leur conception préoccupe un nombre croissant d’observateurs… et de chercheurs. Au CNRS, une équipe travaille à les rendre plus sobre. Y compris dans le cloud.

Le sujet n’est pas nouveau, mais il prend de l'ampleur. Nous l’avons abordé à plusieurs reprises, notamment quand nous nous étions penchés sur le poids des applications. Certes le poids élevé d’une application engendre des transferts plus longs et demande un plus gros espace de stockage, mais la question qui se posait était surtout de savoir ce qui nécessitait tant de place.

Dans notre article, les applications de Facebook étaient très représentatives du problème soulevé : l’utilisation intensive des cadriciels (frameworks) externes aboutissant non seulement à ce que le Journal du CNRS nomme « obésiciels », mais également à un manque flagrant d’optimisation, donc à une consommation élevée d’énergie.

Comme l’indique Romain Rouvoy, chercheur en génie logiciel au Centre de recherche en informatique, signal et automatique de Lille (CRIStAL), la prise de conscience est récente : « En 2010, alors que nous travaillions dans le cadre d’un projet baptisé EcoHome, qui visait à mieux comprendre la consommation des box internet domestiques afin de mieux la maîtriser, nous avons observé que les logiciels étaient grandement responsables de la consommation énergétique globale des systèmes informatiques ».

Avec son équipe, il travaille donc sur cette problématique.

Mesurer et recommander

Le chercheur cite le paradoxe de Jevons (aussi appelé « effet de rebond »), « selon lequel le développement de technologies plus efficaces, permettant en théorie de faire des économies d’énergie, augmente paradoxalement la quantité d’énergie consommée ». Pourquoi ? Essentiellement parce que cette efficacité est contrebalancée par l’explosion des usages ou gommée par de mauvaises habitudes dans le développement.

C’est précisément le cas pour les applications. L’augmentation continue de la puissance des appareils et les débits sans cesse plus importants apaisent les craintes liées à l’attente. Pour une partie des entreprises, c’est un raccourci et un gain de temps : plus besoin de travailler autant sur l’efficacité du code. Il n’y a pas de hasard : la puissance des batteries a beau augmenter, la fréquence des recharges n’a que peu évolué.

« La première étape pour relever un tel défi est d’estimer la consommation énergétique des programmes actuels et d’identifier les portions de code informatique particulièrement consommatrices. C’est la pierre angulaire dans la conception de systèmes plus efficients », a indiqué le chercheur. Il a même développé, dès 2012, une API pour mesurer la consommation des programmes afin d’estimer en temps réel la quantité d’énergie nécessaire au fonctionnement d’une machine.

Il estime cependant qu’il faut des outils beaucoup plus puissants pour intégrer de nouvelles habitudes. La question du langage est par exemple centrale : « […] pour une même fonctionnalité, la consommation peut varier d’un facteur 100, selon le langage informatique choisi (Java, Python, JavaScript, etc.) ». On pourrait alors recommander un langage plus qu’un autre selon les cas, avec toujours cette question : comment parvenir au résultat souhaité en consommant le moins d’énergie possible ?

À ce sujet, le CERN expliquait récemment que, sur son réseau mondial, « les moindres gains d'efficacité dans un code très utilisé peuvent avoir un grand impact » sur les ressources utilisées. Le contraire est aussi vrai : un programme peu ou mal optimisé peut décupler la consommation.

Le cloud, l’autre gros morceau de l’équation

La prise en compte d’une consommation globale ne peut se faire sans aborder les serveurs qui accompagnent souvent une application. Beaucoup d’entre elles fournissent en effet un service qui réclame des calculs basés sur des données hébergées et, bien sûr, des communications dans les deux sens.

La consommation des centres de données est une problématique connue. Les grandes entreprises américaines – Google, Apple, Facebook, Amazon, Microsoft… - ont pris l’habitude depuis des années de concevoir les nouveaux accompagnés d’un mélange de sources en énergies, certaines renouvelables, d’autres compensées, etc.

Dans ce domaine, la marge d’amélioration semble conséquente, notamment sur la manière dont un centre est géré, plus précisément comment les ressources sont réparties en fonction des logiciels. Le CNRS se penche sur le sujet depuis longtemps et l’avait d’ailleurs abordé il y a quelques mois, dans l’optique de « verdir les centres de données ».

Les travaux de Romain Rouvoy sont cependant axés sur le logiciel. En 2017 par exemple, il avait participé au développement d’un ordonnanceur (scheduler) ayant abouti à une baisse moyenne de 23 % de la consommation d’un centre de données, en gardant les mêmes performances. Depuis le début de l’année, il travaille surtout à « l’élaboration de recommandations précises sur les programmes informatiques et les configurations les plus adaptés pour diminuer la consommation énergétique des logiciels du cloud ». Ce programme, nommé Distiller, est financé par l’Agence nationale de la recherche à hauteur de 664 580 euros.

Une émulation sur la problématique

Anne-Cécile Orgerie, de l’Institut de recherche en informatique et systèmes aléatoires (Irisa) de Rennes, travaille de son côté sur une utilisation plus intelligente des énergies renouvelables. « Un de nos buts majeurs est de déterminer s’il est possible de développer des codes permettant de faire en sorte que l’exécution des applications de smartphones sollicitant les serveurs d’un centre de données, et ne nécessitant pas d’être réalisées rapidement (comme les sauvegardes), soit retardée et effectuée seulement quand il y a production de l’énergie renouvelable (la journée, par exemple, pour le solaire) », explique-t-elle.

Le CNRS pointe en effet que l’écoconception logicielle crée une véritable émulation un peu partout. Les équipes à s’y pencher sont de plus en plus nombreuses, et l’IA pourrait d’ailleurs jouer un rôle important. « Grâce à différents algorithmes d'intelligence artificielle, nous pourrons étudier l'ensemble des couches logicielles d’une application cloud, et raisonner plus globalement pour proposer des configurations optimisées de bout en bout », ajoute ainsi Romain Rouvoy.

Comme toujours cependant, les progrès réalisés en amont n’auront de réel impact que s’ils deviennent de nouvelles habitudes pour les développeurs et que les outils utilisés s’adaptent en conséquence. Au-delà du choix du langage, il n’y aurait rien d’étrange à ce qu’un environnement de développement intégré recommande un langage spécifique en fonction du type de projet choisi, comme il existe déjà de nombreuses recommandations, notamment pour la sécurité. Libre à chacun d’en tenir compte ou non.

Vous n'avez pas encore de notification

Page d'accueil
Options d'affichage
Abonné
Actualités
Abonné
Des thèmes sont disponibles :
Thème de baseThème de baseThème sombreThème sombreThème yinyang clairThème yinyang clairThème yinyang sombreThème yinyang sombreThème orange mécanique clairThème orange mécanique clairThème orange mécanique sombreThème orange mécanique sombreThème rose clairThème rose clairThème rose sombreThème rose sombre

Vous n'êtes pas encore INpactien ?

Inscrivez-vous !