green pattern & architecture

27
Vous êtes dans la salle 242B

Upload: microsoft

Post on 18-May-2015

177 views

Category:

Technology


3 download

DESCRIPTION

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.

TRANSCRIPT

Page 1: Green Pattern & Architecture

Vous êtes dans la salle 242B

Page 2: Green Pattern & Architecture

palais des congrès Paris

7, 8 et 9 février 2012

Page 3: Green Pattern & Architecture

L’innocent Chat potté 70 Millions d’heure de calcul, 25 TJoules http://dwave.wordpress.com/2011/11/20/fun-with-puss-n-

boots/

Intro

23 minutes If you could eat 500 bananas per day, it would take you 327 years

Page 4: Green Pattern & Architecture

PrésentationJeune Entreprise Innovante basée à Nantes, spécialisée dans l’informatique Durable, l’éco-conception des logiciels et la RSE dans les entrepriseswww.kaliterre.fr

Thierry LEBOUCQ [email protected] 06 88 71 50 50Co-auteur du livre Green Patterns : http://greencodelab.fr/Livre

Groupe d'utilisateurs qui souhaite rendre le développement logiciel plus durable et plus vertueux http://greencodelab.fr/

Olivier Philippot [email protected] 06 63 09 06 90Auteur 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 [email protected] Directeur du Centre de Services Microsoft Sogeti et .NET Ranger

Eric MITTELETTE [email protected] Relation Technique Développeur & IT

Page 5: Green Pattern & Architecture

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

Fausses idées

Page 6: Green Pattern & Architecture

2 Dimensions: Cycle de vie : du berceau à la tombe Domaines : 3 piliers du développement durable

Social Environnemental Economique

Périmètre

Source Kaliterre

Page 7: Green Pattern & Architecture

Processus logiciel inefficace Etude CHAOS : 20% de réussite

Développement quick-and-dirty Dette technique et environnementale

Processus plus vert

Page 8: Green Pattern & Architecture

« Ce qui ne peut pas être mesuré ne peut pas être géré». Peter Drucker

La mesure

MESURE SOFT

MESURE HARD

Page 9: Green Pattern & Architecture

Infrastructure et moyens de mesure que nous allons utiliser

Demo

Page 10: Green Pattern & Architecture

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

Optimisation de la qualité de service

Page 11: Green Pattern & Architecture

Réduction des updates autosRéduction du jeu de donnée

Demo

Page 12: Green Pattern & Architecture

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 auto-réalisatrice

Langage, matériel et compilation

12

Page 13: Green Pattern & Architecture

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...

Efficacité d'architecture

Page 14: Green Pattern & Architecture

Tri client vs serveur

Demo

Page 15: Green Pattern & Architecture

Optimiser le traitement des algos Intelligent ET optimisé !

Eviter le polling Pas de sleep mais des interruptions ...

Optimisez les boucles Sortie en cas d'erreur par exemple Sortir le plus de calcul

Traitement parallèle Eviter les traitements non concurrents Danger de consommer plus qu’en mono-coeur

Efficacité de calcul

Page 16: Green Pattern & Architecture

Traitement parallèle vs traitement séquentiel

Demo

Page 17: Green Pattern & Architecture

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

Fréquence & CPU

Source : Energy-Efficient Platforms – Considerations for Application Software & Services - http://software.intel.com/file/38273

Page 18: Green Pattern & Architecture

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 !

Timers

Page 19: Green Pattern & Architecture

Demo sous Intel Battery Life Analyser et Microsoft Windows Performance Analyzer

Demo

Page 20: Green Pattern & Architecture

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éesstruct { bool b;

double d; short s; int i;}

struct { double d;int i;short s;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)]

Efficacité des données

La structure va donc occuper: 1 (bool) + 7 (padding) + 8 (double) + 2 (short) + 2 (padding) + 4 (int) = 24 bytes

La taille sera de 8 (double) + 4 (int) + 2 (short) + 1 (bool) + 1 (padding) = 16 bytes.

Page 21: Green Pattern & Architecture

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…

Prise en compte du contexte

Page 22: Green Pattern & Architecture

Exemple de surveillanceconst 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.    }}

Page 23: Green Pattern & Architecture

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

Fin de vie du logiciel

Page 24: Green Pattern & Architecture

Répondre au besoin de tousEviter 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 !

Social / Accessibilité

Page 25: Green Pattern & Architecture

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 !

Ressource et call to action

Page 26: Green Pattern & Architecture

Merci

Page 27: Green Pattern & Architecture

Vous êtes dans la salle 242B