Vers un développement informatique plus vert
La Green IT est l’affaire de tous mais les développeurs détiennent les principales clés des économies d’énergie. Cependant il n’y a pas de secret, le développement Green IT n’est pas pas gravé dans le marbre. Voici quelques pistes de réflexion et surtout des sources d’information que tout développeur devrait, je pense, intégrer dans son "project book"..
Une connaissance des normes de gestion d’énergie permet de développer des logiciels qui n’interfèrent pas avec les mécanismes de mise en veille. La norme en vigueur est l’ACPI.
- La lecture de la norme ACPI est un bon départ
- Si l’on implémente un système, il est possible d’utiliser des implémentations commune de norme ACPI comme APCICA (pour les processeurs Intel)
- Le projet Less Watt est une mine d’information pour l’implémentation ACPI sous LINUX sur Intel
La connaissance de la gestion d’énergie du système d’exploitation sur lequel on développe permet de s’interfacer facilement avec les phases de vie de l’OS et de ne pas interférer avec les mécanismes.
- Comment utiliser la gestion de l’alimentation dans vos application Windows sur MSDN
- Des ressources et des présentation dans Windows Hardware Central
- Intégrer la gestion de l’énergie Windows dans les drivers sur MSDN
- Pour linux, chaque distribution documente sa gestion de l’énergie. Red Hat par exemple.
Connaitre les mécanismes d’économie d’énergie des processeurs permet d’optimiser au mieux son développement. Il est par exemple bon de rassembler les traitements ensemble pour ensuite laisser le processeur dans un état de veille (Idle Time)
S’intéresser aux bonnes pratiques en cours et partager permet de faciliter la mise en place de règles pour tous
- Exemple du Challenge Green Pattern
- Le livre de Felix Guillemot
- Publier sur Greenit.fr ses bonnes pratiques !
S’aider de logiciel et d’appareil permet d’optimiser le code et d’analyser l’impact sur la consommation.
- Energy checker pour Intel
- Joule Meter par Microsoft
- Un simple wattmètre comme je le décrivait dans un précédent article ou comme Lionel Laské l’appliquait avec une charge CPU
Et enfin, rien de plus efficace que d’appliquer le bon sens et optimiser son empreinte mémoire et les accès au reste du système (disque dur, lecteurs optiques …). De plus en début de projet, il est important de se poser sur le choix de la technologie car elle a un impact important sur la consommation. Facebook voulant passer son code de PHP à C++ avec son projet HipHop for PHP en est l’exemple concret.