Green Metrics Tool aide les développeurs à mesurer et optimiser la consommation d’énergie des logiciels

Green Metrics Tool aide les développeurs à mesurer et optimiser la consommation d'énergie des logiciels

L’outil Green Metrics Tool (GMT) est un cadre open source qui permet de mesurer, de comparer et d’optimiser la consommation d’énergie des logiciels dans le but de permettre aux ingénieurs logiciels et aux utilisateurs de prendre des décisions éclairées concernant les bibliothèques, les extraits de code et les logiciels. afin d’économiser de l’énergie et des émissions de carbone.

Alors que le micrologiciel des appareils embarqués alimentés par batterie et le système d’exploitation fonctionnant sur votre smartphone sont généralement optimisés pour une faible consommation d’énergie afin de prolonger la durée de vie de la batterie, on ne peut pas en dire autant de la plupart des logiciels fonctionnant sur des SBC, des ordinateurs de bureau et des serveurs. Mais il y a toujours des avantages à avoir des programmes optimisés en puissance sur ce type de matériel, notamment des factures d’électricité plus faibles, une empreinte carbone plus faible et des appareils potentiellement plus silencieux, car le ventilateur de refroidissement peut ne pas avoir à être allumé aussi souvent. Le Green Metrics Tool vise à aider à cet égard.

Les développeurs expliquent comment cela fonctionne :

Toute application sera conteneurisée puis analysée par ses parties logiques. L’outil open source mesure les mesures de performance classiques ainsi que les mesures liées à l’énergie telles que la puissance, la température et l’efficacité de refroidissement pour comprendre quelle partie du logiciel est responsable de quelle partie de la consommation d’énergie.

Grâce au concept de scénarios d’utilisation, nous créons une interface que les développeurs peuvent tester/développer. En fin de compte, cela rend les produits logiciels complexes comparables les uns aux autres et permet ainsi aux développeurs de sélectionner des bibliothèques en fonction de leur profil de fonctionnalité-énergie (par exemple, messages par watt ou similaire).

Green Metrics Tool nécessite un hôte Linux, et il semble assez intéressant, alors j’ai essayé de l’installer sur Ubuntu 20.04 et 22.04 . J’ai suivi les instructions d’installation à partir de mon ordinateur portable exécutant Ubuntu 20.04 avec la commande suivante installant certaines dépendances :

L’étape suivante consistait à installer Docker :

Nous pouvons vérifier que docker est installé et fonctionne correctement en tapant :

Il affichera une vue avec l’ID de conteneur, le nom et les statistiques, qui sont tous vides pour le moment.

Statistiques Docker

J’ai dû exécuter la commande avec sudo, mais GMT est conçu pour fonctionner uniquement avec Docker en mode sans root, et j’ai dû installer quelques packages supplémentaires :

Il se termine par :

J’ai donc édité ~/.bashrc en conséquence en ajoutant les deux lignes d’exportation.

Enfin, veuillez exécuter les commandes suivantes pour que le démon docker soit toujours en attente :

La prise en charge de cgroup2 doit également être activée. Il est activé par défaut dans Ubuntu 21.10 et supérieur, mais comme je suis toujours sur Ubuntu 20.04, j’ai dû l’activer manuellement avec la délégation CPU, CPUSET et I/O comme expliqué sur rootlesscontainer.rs. Pour activer cgroup2, j’ai dû créer le fichier /etc/default/grub.d/50-cloudimg.settings.cfg avec la ligne :

Ensuite, mettez à jour la configuration de grub avec :

Pour activer la délégation, j’ai dû exécuter quelques commandes supplémentaires :

Une fois cela fait, j’ai dû redémarrer mon ordinateur et j’ai pu vérifier que tout était configuré comme prévu :

La dernière étape consistait à exécuter le script d’installation pour configurer la base de données, créer quelques fichiers, installer encore plus de dépendances et créer les fournisseurs de métrique :

J’ai eu quelques erreurs : « g_string_replace » undeclare et les binaires sgx ne se construisaient pas car le répertoire est vide. La première erreur ne se produit que dans Ubuntu 20.04, et non dans Ubuntu 22.04, et il semble que ce soit une nouvelle fonction dans la glibc, et la seconde se produit dans les deux, donc je commente simplement cette partie pour terminer la construction. Nous pouvons maintenant exécuter le conteneur Docker avec :

Il a fallu environ 20 minutes pour créer l’image Docker et je peux maintenant accéder au tableau de bord à l’adresse http://metrics.green-coding.local:9142/index.html

L’outil Green Metrics prend en charge divers fournisseurs de métriques en C ou Python qui mesurent la consommation d’énergie (powerstat), signalent diverses métriques d’utilisation du processeur, collectent des données pour les capteurs lm, exploitent l’interface Running Average Power Limit (RAPL) pour l’utilisation de l’énergie du processeur et de la mémoire, etc.

Tableau de bord de l'outil Green Metrics

L’outil Green Metrics prend en charge divers fournisseurs de métriques en C ou Python qui mesurent la consommation d’énergie (powerstat), signalent diverses métriques d’utilisation du processeur, collectent des données pour les capteurs lm, exploitent l’interface Running Average Power Limit (RAPL) pour l’utilisation de l’énergie du processeur et de la mémoire, etc. Mais après avoir examiné la documentation GMT, la courbe d’apprentissage peut être plus longue que prévu initialement, et j’ai remarqué qu’une démo publique est déjà en cours d’exécution avec divers tests disponibles. Voyons donc la sortie du premier projet : « Fujitsu TX1330 M2 – Stress-Interval with powerspy ».

Intervalle de stress de l'outil Green Metrics PowerspyNous pouvons voir des informations sur le projet et sa durée, et si nous faisons défiler vers le bas, nous avons des widgets avec diverses « métriques au niveau du système » suivies de métriques composées.

Utilisation de l'UC GMT Utilisation de la puissance de la mémoire

En faisant défiler plus loin, nous avons une gamme de graphiques pour chaque métrique, telle que la consommation d’énergie du processeur au fil du temps.

Tableau de l'outil Green Metrics

L’analyse des données nécessite également une certaine expertise et du temps pour apprendre, et si vous souhaitez vérifier certains résultats pratiques, les développeurs ont rédigé quelques études de cas avec différents formats de fichiers image, WordPress vs Hugo, etc… Si votre logiciel est situé dans un référentiel public sur GitHub et que vous avez fait quelques optimisations, il sera éventuellement certifiable sur la base de divers schémas tels que Green-Coding-Berlin, Blue Angel (Blauer Engel en allemand) et SCI de la Green Software Foundation.

Vous trouverez le code source du logiciel expérimental et plus de détails sur le repo GitHub. Vous pouvez également assister à la présentation FOSDEM 2023 d’Arne Tarara intitulée « Génie logiciel vert » où il donnera un aperçu de l’outil et présentera la feuille de route avec éventuellement l’objectif d’avoir « une base de données publique et ouverte d’informations sur l’énergie pour des configurations matérielles arbitraires, des blocs de code, des bibliothèques et une bibliothèque standard verte/complétion de code vert ».

Retrouvez l’histoire de Raspberry Pi dans cette vidéo :

YouTube video