Compilateurs, languages et frameworks
Compilateurs et langages
Pour l'instant, il n'existe pas vraiment de langages spécifiquement conçus et dédiés aux économies d'énergie. Certains s'en revendiquent comme le langage "D". Mais la mode étant plutôt à l'augmentation des niveaux d'abstraction, les problématiques d'économie d'énergie sont mises en arrière-plan. Toutefois, les centres de recherche d'IBM et de Microsoft ont publié différents papiers sur les moyens d'implémenter des "patterns" écologiques qui devraient se concrétiser dans les prochaines générations d'outils de modélisation.
Il en va un peu de même des compilateurs. Aucun ne propose d'options "-green" qui optimiserait la compilation dans le sens d'une meilleure gestion de l'énergie. Cependant tous les compilateurs disposent d'options qui permettent de calibrer le binaire pour les générations les plus récentes de processeurs (en utilisant par exemple les jeux d'instruction SSE) et de privilégier la vitesse d'exécution sur la compacité. Les développeurs devraient systématiquement utiliser ces options de compilation (O2/O3 en GCC) même si elles contribuent à davantage de consommation mémoire et nuisent à la compacité du code binaire. En matière de "Green", la performance l'emporte.
L'une des évolutions qui se montrera la plus probante est probablement l'insertion d'outils de vérification formelle dans les outils de développement et les compilateurs. Leur objectif ? S'assurer que le code du développeur ne comporte pas de bugs ! Ainsi, MS Research a développé un Vista Static Driver Verifier qui prouve mathématiquement que le pilote est bien écrit. De tels vérificateurs devraient se généraliser dans les prochaines générations d'outils de développement et devraient concourir à la création d'applications qui ne plantent plus. Or on l'a vu, la stabilité d'un programme est l'une des meilleures assurances écologiques qui soient.
Vers des frameworks Verts ?
En 2004 déjà, une étude montrait comment la machine virtuelle Java influait sur la consommation électrique et quels étaient les OpCodes les plus consommateurs. L'étude montrait également le rôle fondamental de l'utilisation de la mémoire dans la consommation d'énergie et le poids conséquent imposé par l'interpréteur. L'étude suspectait dès lors que toutes les techniques de JIT permettraient de diminuer notablement la consommation électrique des applications Java. Cette étude peut s'extrapoler à JavaScript et à la nécessité d'utiliser aujourd'hui des navigateurs possédant des compilateurs JavaScript performants.
Universités et centres de recherche se penchent aujourd'hui sérieusement sur les moyens d'automatiser les économies d'énergie au travers de nouveaux frameworks. L'université d'Harvard s'intéresse notamment au potentiel des "many cores" (ces futurs processeurs qui embarquent de multiples cœurs hétérogènes). Ses chercheurs imaginent un nouveau paradigme logiciel sensible à la fois au comportement des différents threads et aux détails de l'environnement dans lequel ils s'exécutent. Ils proposent ainsi un environnement d'exécution dynamique qui co-existe avec le système d'exploitation. Celui-ci surveille et modifie dynamiquement le flux d'instructions des threads en cours d'exécution afin de rester dans les limites de consommation électrique définies et de s'assurer que la quantité de puissance consommée par chaque thread est bien proportionnelle à son efficacité (travaux de David Brooks, A Synergistic Approach To Adaptive Power Management).
Dans un même ordre d'idées, le projet Sooner de l'université de l'Oklahoma (dirigé par Ronald Barnes) est un framework de simulation qui fournit de nombreuses informations sur la performance et la consommation d'énergie durant l'exécution simulée des programmes. Différents modèles permettent d'évaluer les variations de consommation en fonction du placement des instructions dans les différents cœurs (là encore l'université vise principalement les many cores). L'objectif à terme est de simplifier la création de compilateurs et de systèmes d'exploitation prenant en compte la consommation énergétique.


Le lien ne marche pas !
lien ne fonctionne pas
Je voudrais un limiteur de FPS inclut dans DirectX et OpenGL. 30-35 FPS sont largement suffisants pour la majorité des jeux et applis 3D.
+1 sur le web 3.0 et les animations. Je vous suggère d'ailleurs de lire cet article "5 règles pour un site web plus respectueux de l'environnement"
Je voudrais un limiteur de FPS inclut dans DirectX et OpenGL. 30-35 FPS sont largement suffisants pour la majorité des jeux et applis 3D.
Ça devrais être une fonctionnalité standard dans tous les jeux. Surtout que que le nombre de d'image par seconde est directement proportionnel à la consommation électrique !
Faut être débile pour mentionner le wattmètre ou PowerTop.
Au niveau d'une application, les critères de consommation sont le temps processeur utilisé, et les I/O
Faut être débile pour mentionner le wattmètre ou PowerTop.Au niveau d'une application, les critères de consommation sont le temps processeur utilisé, et les I/O
Ce raisonnement est plus qu'insuffisant pour "programmer vert". Si l'on se cantonne à cette façon de raisonner, alors un programme qui tourne 8H à 3% d'utilisation processeur est plus écolo que sa version qui consomme 70% en deux heures... ce qui est bien entendu faux. Arriver à une programmation écolo, c'est à mon sens trouver un équilibre entre performances brutes et indispensables (temps de calculs pour l'environnement pro notamment), et surconsommation ridicule de ressources (processus en tâche de fond qui ne servent à rien, non libération mémoire...)
Et si on commencait par avoir des systèmes moins gourmands et des exigeances moins grande en matière de PC ?
Avoir un QuadCore pour faire du Word 2007 est particulièrement inutile..
Image de synthèse ou image pas de synthèse page 4 ?
Je voudrais un limiteur de FPS inclut dans DirectX et OpenGL. 85 FPS sont largement suffisants pour la majorité des jeux et applis 3D
En dessous c'est pas la peine, surtout a 30/35fps c'est carrement injouable (je prends exemple de Unreal et Trackmania ou ca commence a etre jouable a partir de 60 FPS)
"Si l'on se cantonne à cette façon de raisonner, alors un programme qui tourne 8H à 3% d'utilisation processeur est plus écolo que sa version qui consomme 70% en deux heures..."
=> Une fonctionnalité devrait prendre toutes les ressources disponibles pour exécuter sa tâche, et non pas prendre un peu de ressource de temps en temps.
=> La libération de mémoire ne va pas diminuer la consommation électrique (sauf si cela impose l'utilisation du SWAP) puisqu'une barrête mémoire ne peut pas se mettre en veille.
"Si l'on se cantonne à cette façon de raisonner, alors un programme qui tourne 8H à 3% d'utilisation processeur est plus écolo que sa version qui consomme 70% en deux heures...
=> Une fonctionnalité devrait prendre toutes les ressources disponibles pour exécuter sa tâche, et non pas prendre un peu de ressource de temps en temps."
C'est un peu moins schématique que cela : tout dépend de la conso. au repos et de la configuration en charge de la configuration, de la durée d'exécution avec une faible conso de ressources proc et de la durée d'exécution avec le maximum de ressources proc utilisées. Sans oublier l'heure d'exécution (si, si ! car si on est sur un période de pointe en demande d'énergie, EDF doit faire tourner des centrales plus polluantes, donc l'impact green n'est pas le même ;-) )
Ceci dit, dans l'exemple de magellan, la version 2h/70% de ressources est celle qui consommera le moins sur une majorité de palteformes "grand public"...
C'est au système d'exploitation de savoir gérer les ressources allouées
(sauf choses superflus comme rendu graphique, interface graphique géré par le programme)
DareDare: pour la France au moins les centrales nucléaires rendent caduques les changements d'heures été/hiver, car modifier leur production électrique est un processus lent (1~2 semaines). Du coup on s'en fiche aussi de l'heure d'exécution.
Pour le CPU à 2% ou 70%: sauf les tout derniers Core i7, un CPU consomme autant, qu'il soit utilisé ou pas (je ne parle pas de la modification dynamique du voltage présent notamment sur les portables)
Et si on commencait par avoir des systèmes moins gourmands et des exigeances moins grande en matière de PC ?
Avoir un QuadCore pour faire du Word 2007 est particulièrement inutile..
On a inventé les mini-notebooks pour ça.
Assieds-toi, respire un grand coup !
Enfin, depuis ce temps, tu as peut-être même dormi une bonne vingtaine de fois...