Green Pattern & Architecture

707 vues

Publié le

L’impact énergétique et environnementale de la couche logicielle est souvent mal connue et ignorée. Pourtant certain choix d’implémentation ont des impacts fort sur la performance et l’impact énergétique des solutions logicielles. La mise en oeuvre de solutions ou de services dans une ferme de serveur amplifie rapidement l'impact économique de la consomation énergétique... Code interprété versus code compilé, code parallèle, architecture service… seront les sujets abordés lors de cette session, ou nous présenterons l’état de l’art en matière de d’eco conception logicielle et la recherche de green pattern.

Publié dans : Technologie
0 commentaire
1 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

Aucun téléchargement
Vues
Nombre de vues
707
Sur SlideShare
0
Issues des intégrations
0
Intégrations
50
Actions
Partages
0
Téléchargements
8
Commentaires
0
J’aime
1
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

Green Pattern & Architecture

  1. 1. Vous êtes dans la salle 242B
  2. 2. palais descongrèsParis7, 8 et 9février 2012
  3. 3. Intro L’innocent Chat potté  70 Millions d’heure de calcul, 25 TJoules  http://dwave.wordpress.com/2011/11/20/fun-with-puss-n-boots/ If you could eat 500 bananas per day, 23 minutes it would take you 327 years
  4. 4. Présentation Jeune Entreprise Innovante basée à Nantes, spécialisée dans l’informatique Durable, l’éco-conception des logiciels et la RSE dans les entreprises www.kaliterre.fr Thierry LEBOUCQ tleboucq@kaliterre.fr 06 88 71 50 50 Co-auteur du livre Green Patterns : http://greencodelab.fr/Livre Groupe dutilisateurs qui souhaite rendre le développement logiciel plus durable et plus vertueux http://greencodelab.fr/ Olivier Philippot contact@olivierphilippot.fr 06 63 09 06 90 Auteur du livre « Green IT » et co-auteur du livre « Green Patterns » Co-fondateur groupe eco-conception logiciel Sogeti compte 20 000 collaborateurs répartis dans 15 pays. 6000 d’entre eux sont dédiés aux technologies Microsoft. Les .NET Rangers : groupe d’experts avec un fort ancrange dans l’écosystème Microsoft (plusieurs MVP) http://www.dotnetrangers.net Keelan CLECH keelan.clech@sogeti.com Directeur du Centre de Services Microsoft Sogeti et .NET Ranger Eric MITTELETTE ericmitt@microsoft.com Relation Technique Développeur & IT
  5. 5. Fausses idées Performance = efficace = efficient  2000 tr/mn ?= faible consommation Le cloud s’est le futur  Lavoisier : « Rien se perd… » Eco-conception = efficacité énergétique  Pas uniquement
  6. 6. Périmètre 2 Dimensions:  Cycle de vie : du berceau à la tombe  Domaines : 3 piliers du développement durable  Social  Environnemental  Economique Source Kaliterre
  7. 7. Processus plus vert Processus logiciel inefficace  Etude CHAOS : 20% de réussite Développement quick-and-dirty  Dette technique et environnementale
  8. 8. La mesure « Ce qui ne peut pas être mesuré ne peut pas être géré». Peter Drucker
  9. 9. Demo Infrastructure et moyens de mesure que nous allons utiliser
  10. 10. Optimisation de la qualité deservice Logiciel suréquipé  Exemple : étude Standish Group Solutions  Optimiser la qualité de service  Exemple étude Microsoft avec Bing :  20 résultats  Gain de 80% en conso  Installation modulaire  Voire intelligente et transparente pour l’utilisateur !  Mieux identifier l’expression de besoin
  11. 11. Demo Réduction des updates autos Réduction du jeu de donnée
  12. 12. Langage, matériel etcompilation Langage  Back to basics ou …  … meilleure connaissance du runtime  Exemple : Facebook avec le projet  Hip-Hop qui compile le code PHP en C++ Scalabilité = course à l’armement  Scalabilité inverse  Exemple node.js  Support des plateformes Light (ARM..) Oubliez la synchronisation  Loi de Moore : prophétie 2 1 auto-réalisatrice
  13. 13. Efficacité darchitecture Répartition des calculs entre client/serveur  Mettre les calculs dans l’endroit où l’on peut optimiser  Dans un serveur … mais maîtrisé Provisionning et de-Provisionning  Comment et à quel moment répartir les job sur plusieurs châssis /VM  Monitoring application, publier son état, quota...
  14. 14. Demo Tri client vs serveur
  15. 15. Efficacité de calcul Optimiser le traitement des algos  Intelligent ET optimisé ! Eviter le polling  Pas de sleep mais des interruptions ... Optimisez les boucles  Sortie en cas derreur par exemple  Sortir le plus de calcul Traitement parallèle  Eviter les traitements non concurrents  Danger de consommer plus qu’en mono-coeur
  16. 16. Demo Traitement parallèle vs traitement séquentiel
  17. 17. Fréquence & CPU Oubliez le % CPU, focalisez vous sur les timers et les fréquences  Transition Cstate to idle coûteux  Métriques : Fréquence & durée d’éxécution Source : Energy-Efficient Platforms – Considerations for Application Software & Services - http://software.intel.com/file/38273
  18. 18. Timers SetWaitableTimerEx( __in HANDLE hTimer, __in const LARGE_INTEGER *lpDueTime, __in LONG lPeriod, __in_opt PTIMERAPCROUTINE pfnCompletionRoutine, __in_opt LPVOID lpArgToCompletionRoutine, __in_opt PREASON_CONTEXT WakeContext, __in ULONG TolerableDelay ); Indiquez votre tolérance pour votre timer  2 ticks -> 32 ms  Timers de plusieurs secondes --> jusquà 1 s de tolerance !
  19. 19. Demo Demo sous Intel Battery Life Analyser et Microsoft Windows Performance Analyzer
  20. 20. Efficacité des données Localisation des données  Registre - 1 cycle  Cache L1 - 3 cycles  Cache L2 - 10 cycles  Mémoire RAM - ~100 cycles  Disque dur - ~ 1 millions de cycle Coût des données struct { bool b; double d; La structure va donc occuper: 1 (bool) + 7 (padding) + 8 (double) + 2 (short) + 2 (padding) + 4 (int) = 24 bytes short s; int i;} struct { double d; int i; short s; La taille sera de 8 (double) + 4 (int) + 2 (short) + 1 (bool) + 1 (padding) = 16 bytes. bool b;}; Interfaces de marshalling pour améliorer le placement en managé  [StructLayout(LayoutKind.Sequential, Pack = 1)]  [StructLayout(LayoutKind.Explicit)] avec des champs [FieldOffset(0)]
  21. 21. Prise en compte du contexte Un logiciel n’est pas une unité indépendante  Il doit communiquer avec l’extérieur  Une programme « context-aware » sera plus intelligent et prendra mieux en compte les impacts environnementaux Prise en compte de la gestion d’énergie (Power-Aware)  Power Management API  Events, Api…
  22. 22. Exemple de surveillance const int WM_POWERBROADCAST = 0x0218; const int PBT_APMQUERYSUSPEND = 0x0000; const int PBT_APMQUERYSTANDBY = 0x0001; const int PBT_APMQUERYSUSPENDFAILED = 0x0002; const int PBT_APMQUERYSTANDBYFAILED = 0x0003; const int PBT_APMSUSPEND = 0x0004; const int PBT_APMSTANDBY = 0x0005; const int PBT_APMRESUMECRITICAL = 0x0006; const int PBT_APMRESUMESUSPEND = 0x0007; const int PBT_APMRESUMESTANDBY = 0x0008; const int PBT_APMBATTERYLOW = 0x0009; const int PBT_APMPOWERSTATUSCHANGE = 0x000A; const int PBT_APMOEMEVENT = 0x000B; const int PBT_APMRESUMEAUTOMATIC = 0x0012; protected override void WndProc(ref Message m) { base.WndProc(ref m); if (WM_POWERBROADCAST == m.Msg) { // Réalisez les actions en fonction des messages. } }
  23. 23. Fin de vie du logiciel Eviter le bloatware Ne pas perturber les autres logiciels Mieux gérer les données  Fichiers temporaires  Registres…  Site web inactifs Désinstallation automatique  Exemple Thunderbird
  24. 24. Social / Accessibilité Répondre au besoin de tous Eviter la fracture numérique et la cyber fracture Respecter les normes d’accessibilité et recommandation  W3  Livre Blanc TiC & Senior Généraliser l’accessibilité et l’ergonomie pour tout les logiciels et pas uniquement sur une segmentation  Non aux logiciels pour informaticiens fait par des informaticiens !
  25. 25. Ressource et call to action Actions et initiatives  Réflexion AFNOR et ISO : normalisation et guideline  Green Software Engineering : Recommandations Web  Green Challenge USI  Projet Code Vert : Outil d’analyse des green patterns  Green Code Lab : Actions sur l’éco-conception Livre Green Code Lab disponible !
  26. 26. Merci
  27. 27. Vous êtes dans la salle 242B

×