Green IT

Et si les applications savaient l’énergie que consomme l’infrastructure?

A l’aide de nouvelles abstractions, des chercheurs proposent d'informer les applications de la consommation énergétique des l’infrastructure sur laquelle elles tournent. S’appuyant sur l’IA, leur projet doit permettre de mesurer l’empreinte carbone réelle d’un applicatif mais aussi de procéder à des arbitrages dynamiques pour la réduire.

(Source: Poles / Fotolia.com)
(Source: Poles / Fotolia.com)

On le sait, l’impact environnemental de l’informatique vient en gros de la production des équipements et de l’énergie qu’ils consomment. Concernant cette seconde dimension, les efforts et innovations se concentrent en grande partie sur l’efficience énergétique des datacenters et des équipements qu’ils abritent, avec des améliorations tant côté hardware que via la virtualisation. Les améliorations côté logiciel sont plus rares. Les pratiques d’éco-conception - promues notamment par la Green Software Foundation - permettent de développer des applicatifs moins gourmands en énergie. Il est toutefois quasiment impossible de connaître l’empreinte carbone d’un applicatif en production, en particulier s’il tourne sur un serveur hébergeant d’autres applications et qui plus est dans le cloud.

Dans un article publié en janvier, des chercheurs proposent d’y remédier à l’aide de nouveaux standard et mécanismes permettant aux logiciels de connaître la consommation énergétique de l’infrastructure qu’ils exploitent, que celle-ci soit dans le cloud, ou dans le datacenter de l’organisation. Baptisé Treehouse, leur projet a pour objectif de «jeter les bases d’une nouvelle infrastructure logicielle qui traite l’énergie et le carbone comme une ressource de premier ordre, au même titre que les ressources informatiques traditionnelles telles que le calcul, la mémoire et le stockage». Pour y parvenir, les auteurs estiment que trois abstractions fondamentales sont nécessaires aux développeurs: le suivi de l’utilisation d’énergie, la capacité d’effectuer des arbitrages énergie/performance et une nouvelle unité d’exécution.

Des modèles IA pour estimer l’empreinte carbone

Selon les chercheurs, l’énergie consommée par une application est si diverse (code utilisateur, système d’exploitation, stockage, réseau, etc.) qu’il est quasiment impossible de la mesurer à partir de mécanismes hardware. Au lieu de cela, ils proposent de recourir à l’intelligence artificielle et d’entraîner un modèle à estimer l’énergie consommée par l’application sur la base de diverses métriques (bande passante, volume de stockage, cycles d’accélération, topologie du hardware) et de mesures de laboratoire. Puis de combiner ces estimations à des informations sur le datacenter lui-même (RPC, empreinte carbone de l’énergie utilisée).

Informer les logiciels systèmes des contraintes de performance des applications

Les chercheurs soulignent que les mesures améliorant l’efficience énergétique (désactivation du boost du processeur, déplacement moins fréquent des données entre mémoire vive et stockage solid-state, utilisation d’accélérateurs hardware moins gourmands, etc. ) ont en général un impact négatif sur la performance, et inversement. Si les développeurs d’applications peuvent arbitrer entre énergie et performance, c’est bien plus difficile pour les concepteurs de logiciels systèmes qui n’ont pas connaissance de ce que les applications cherchent à faire. Pour y répondre, les auteurs proposent de créer une interface informant les logiciels systèmes des contraintes de performance des applications sous la forme de SLA. «Pour les opérations très sensibles à la latence, il peut toujours être judicieux d'utiliser les solutions les plus performantes, même si le coût énergétique est élevé. Mais lorsqu'il existe une marge de manœuvre dans les attentes des utilisateurs, nous pouvons utiliser cette flexibilité pour choisir la solution la plus efficace sur le plan énergétique tout en répondant aux besoins des utilisateurs», expliquent les chercheurs.

Arbitrages plus granulaires

Les chercheurs proposent enfin de développer une nouvelle unité - la microfonction - pour lutter contre deux phénomènes énergivores: d’une part l’immobilisation de ressources faiblement utilisées (calcul, mémoire, stockage) devenant indisponibles pour d’autres applications notamment dans le cloud/serverless, et des stacks qui accumulent les couches logicielles superflues pour faciliter le travail des développeurs. Opérant à l’échelle de la microseconde, le nouveau modèle de programmation permettrait à la fois de provisionner les ressources de manière beaucoup plus fine pour choisir l’option la plus efficiente en fonction du SLA, et d’agréger plus efficacement les ressources demandées par les applications. «Les microfonctions représentent une échelle de temps suffisamment grande pour effectuer un workload utile (c'est-à-dire quelques milliers de cycles), tout en étant suffisamment fine pour équilibrer rapidement l'utilisation des ressources en cas de changement de workload».

>>Pour en savoir plus: Treehouse: A Case For Carbon-Aware Datacenter Software

Tags
Webcode
DPF8_256344