Green IT : Microsoft prône le développement d'applications sobres

le 17/02/2009, par Emmanuelle Delsol, Infrastructure, 1110 mots

Dans le cadre des Techdays'09, Microsoft s'est fait l'apôtre d'un développement "vert", en évoquant quelques bonnes pratiques permettant de réduire la consommation d'un programme, par exemple en le parallélisant sur plusieurs coeurs.

Green IT : Microsoft prône le développement d'applications sobres

Oui, il est possible de réduire la consommation électrique en étant plus attentif lors de l'écriture des applications. C'est ainsi qu'Eric Mittelette, responsable du groupe développeurs de la division plateforme d'entreprise chez Microsoft France, a entamé sa session « développement d'applications vertes » aux Techdays'09 de Microsoft qui se sont tenus la semaine dernière à Paris. Tenant davantage du credo que de la méthode, sa déclaration était néanmoins inspirée par plusieurs expériences de développement réalisées wattmètre en main. Plus que de grandes leçons d'algorithmique et de programmation, il a fourni des pistes pour une programmation plus raisonnable. Ainsi le responsable Microsoft donne un premier conseil aux futurs développeurs verts : se munir d'un wattmètre pour mesurer la consommation des différentes versions de logiciel qu'ils écriront. « Sans mesure on ne peut rien faire », assène-t-il. Il suffit de brancher son PC sur l'appareil de mesure et de jauger la consommation des différentes versions de programmes en exécution. Equipé de la sorte, le développeur dispose aussi de plusieurs outils fournis par l'éditeur pour étudier la consommation des logiciels. Ainsi, dans Seven, l'utilitaire Xperf lance, en ligne de commande, un diagnostic de la consommation du système. Une fois arrêté, il génère un fichier d'informations concernant directement le noyau. Il indique par exemple les points chauds au niveau du processeur ou de l'activité du disque, etc. Powercfg, lui, crée un rapport appelé energy-report qui liste tous les problèmes de consommation identifiés au niveau de la machine et de son système. « On voit que le périphérique USB n'est pas entré en veille quand on l'a demandé, par exemple, indique Eric Vernié, chargé de la relation technique avec les développeurs. Ce document peut aussi signaler que la batterie est en mauvais état. » La parallèlisation n'est pas toujours une solution Wattmètre branché sur un portable, les deux responsables Microsoft ont procédé à plusieurs démonstrations de l'impact de certains changements au sein du code sur la consommation énergétique. Ainsi, Vista seul consomme 40 watts. Mais l'affichage d'une fractale de Mandelbrot, image issue d'un algorithme mathématique, fait monter le compteur jusqu'à 51 watts. En parallèlisant le programme pour un fonctionnement sur deux coeurs, la consommation descend à 43 watts en moyenne mais avec un pic à 56. Sur 6 coeurs, le même type de phénomène se produit. Conclusion : il est essentiel d'arbitrer entre exécution rapide et consommation. Moins compliquées, certaines astuces limiteront la gourmandise des programmes. L'utilisation de la fonction P-invoke dans .Net permet, par exemple, lorsqu'on débranche un portable du secteur et qu'il ne fonctionne plus que sur sa batterie, d'arrêter d'éventuelles animations en cours pour économiser l'énergie. On doit aussi préférer un accès direct à la mémoire plutôt qu'une copie d'objets. Enfin, pourquoi faire appel à une fonction mathématique telle que la racine carrée dans une bibliothèque idoine, alors qu'on peut l'écrire simplement en ligne ? Là-encore, la preuve fut faite par le tout puissant wattmètre. Pour économiser, le code doit aussi savoir gérer les diverses fonctions de mise en veille et de reprise ainsi que les transitions entre les deux états. Il doit résister aux défaillances logicielles, pour éviter la surconsommation d'un redémarrage entre autres. Eric Mittelette évoque par exemple la redondance de services ou de modules comme on la voit apparaître dans Live Mesh. Si un élément crashe, l'ensemble du logiciel retrouve néanmoins 'son chemin' au travers des services restants. Consommer un peu plus mais moins longtemps ou consommer moins sur une durée plus longue Pour Eric Mittelette, il faut un état d'esprit particulier pour développer plus vert. Dès le départ, on doit comprendre l'impact du logiciel sur la consommation énergétique et limiter l'utilisation des ressources en conséquence. Il faut écrire un code souple, adaptable, pensé, capable de monter en puissance, avec des couches d'abstraction au-dessus des données, etc. Quoique... Encore une fois, pour être manipulées, toutes ces clés requièrent un grand sens de l'équilibre. Ainsi, trop de couches d'abstraction des données vont utiliser un grand nombre de ressources et, au final, nuire à l'efficacité énergétique. La parallélisation du code a, elle aussi, ses limites. La surcharge entraînée par la gestion d'un code réparti sur plusieurs processeurs ou coeurs consomme de la ressource et va finalement nuire aux économies faites en exploitant au mieux la plateforme processeur comme l'expliquait le Gartner dans une de ses études récentes. Enfin, on a souvent le choix entre consommer un peu plus mais moins longtemps ou consommer moins sur une durée plus longue. Un peu de bon sens ? Eric Mittelette énonce quelques vérités qu'il fallait sans doute rappeler. Il faut ainsi utiliser les ressources adaptées à ce que l'on développe et ne pas écrire une calculette sur 24 coeurs... Il faut parfois prendre le relais du système d'exploitation sur la consommation énergétique. Le responsable Microsoft évoque l'exemple des applications kiosques. Installées dans les magasins, elles restent parfois ouvertes sur des images plein écran toute la journée. Dans ce cas, l'OS les alimente en permanence pour ce type de besoin. Il est intéressant d'imaginer un écran d'accueil allégé en cas de non utilisation prolongée. Parmi les conseils plus pointus, Microsoft rappelle que le timer de l'OS, qui lui permet de garder le contrôle, se déclenche entre 15 et 18 ns. Si une application déclenche un timer en dessous de ce délai, l'OS s'adapte et pour ce faire, il utilise les ressources processeurs à plein. Toujours au niveau du système, plutôt que de laisser tourner le « file system watcher » qui observe en permanence ce qui se passe au niveau du gestionnaire de fichier uniquement pour guetter un type d'événement, mieux vaut s'abonner à cet événement. Il s'agit à la fois de limiter les cycles CPU et de maîtriser les entrées/sorties (en jouant avec les caches par exemple). Un appel à la bonne volonté de tous les développeurs, sous Windows ou non Eric Mittelette rappelle qu'avec un portable, 8% de la consommation électrique provient du disque dur. Quant aux disques SSD, réputés moins gourmands puisqu'ils ne 'tournent' pas, Microsoft rappelle néanmoins qu'ils ne s'arrêtent jamais. Limiter les animations, faire attention aux couleurs. Sur les écrans classiques et avec les écrans à Led rétroéclairées, le blanc est plus consommateur que le noir (pour lequel on n'allume pas les pixels). Pour conclure, Eric Mittelette en appelle à la bonne volonté des développeurs qu'il invite à se doter du fameux wattmètre et à se mettre au travail. « Nous allons créer un forum, un blog, un site pour partager les bonnes pratiques du développement vert. Et que vous travailliez sur Windows, sur Linux, ou un autre OS, cela nous est égal. C'est dans l'intérêt global. »

Kneron vise l'ermbarqué avec sa puce KL730 taillée pour l'IA

Axée sur l'image, la puce d'intelligence artificielle KL730 de Kneron devrait permettre de nombreuses améliorations dans les domaines de l'edge computing, de la sécurité et de l'automobile. Dénommée KL730,...

le 22/08/2023, par Jon Gold / Network World (adaptation Jean Elyan), 533 mots

Volumez repense le stockage cloud en misant sur la performance...

Fondé par des vétérans dans l'industrie du stockage, Volumez promeut un logiciel d'orchestration du stockage qui exploite des ressources Linux pour exécuter des charges de travail exigeantes en utilisant une...

le 23/06/2023, par Serge LEBLAL, 939 mots

Des serveurs Lenovo edge pour l'IA et le traitement des données

Les serveurs Lenovo ThinkEdge offriront une plus grande capacité de traitement là où les données sont générées et permettront aux entreprises d'effectuer de l'inférence en temps réel à la périphérie. Au cours...

le 20/06/2023, par Andy Patrizio, IDG NS (adapté par Jean Elyan), 565 mots

Dernier dossier

Les white-box sont-elles l'avenir de la commutation réseau ?

Et si vous pouviez gérer vos commutateurs de centres de données et vos routeurs de la même façon que vos serveurs et ainsi réduire les coûts des dépenses en capital ? C'est la promesse des white-box qui amènent des systèmes d'exploitation réseau open source fonctionnant sur du matériel courant.Pour en avoir le coeur net, nous avons testé Cumulus...

Dernier entretien

Céline Polo

DRH du groupe iliad

"Nous recrutons dans des métiers en tension, en particulier sur l'infrastructure réseau, pour lesquels il y a...