• Aucun résultat trouvé

Mesure et modélisation de l énergie logicielle

N/A
N/A
Protected

Academic year: 2022

Partager "Mesure et modélisation de l énergie logicielle"

Copied!
63
0
0

Texte intégral

(1)

Mesure et modélisation de l’énergie logicielle

Adel Noureddine, Romain Rouvoy, Lionel Seinturier Green Days @ Lille

29 novembre 2013

(2)

Plan

• Contexte!

• Problèmes et limitations!

• Mesure énergétique des logiciels avec Jalen!

• Benchmarking de la variation énergétique

(3)

Énergie, c’est quoi le

problème ?

(4)

Prix du pétrole

Energy Information Administration and Bureau of Labor

Statistics, 2013

(5)

Consommation des TICs

2007-2008

0 400 800 1200 1600

Consommation électrique (GW) Empreinte carbone (MtCO2e)

2%

7%

(6)

Consommation des TICs

2020

0 400 800 1200 1600

Consommation électrique (GW) Empreinte carbone (MtCO2e)

Consommation et empreinte

x2

14%

(7)

“Il faut optimiser la consommation énergétique des

ordinateurs et des logiciels.”

(8)

“Il faut optimiser la consommation énergétique des ordinateurs et des logiciels.”

Optimiser

Mesurer

(9)

Ça n’existe pas déjà ?

(10)

Problèmes et limitations

Mesure

l’énergie ? Granularité Modification OS ou application

Utilisation d’un wattmètre

Wattmètres ✔️ Matérielle ✖️ ✔️

PowerScope ✔️ Processus OS ✔️

pTop ✔️ Processus OS pour le réseau ✖️

Energy Checker ✔️ Code source Application ✔️

Profilers OS ✖️ Processus ✖️ ✖️

Profilers logiciels ✖️ Code source Dépend du profiler ✖️

(11)

Problèmes et limitations

Mesure

l’énergie ? Granularité Modification OS ou application

Utilisation d’un wattmètre

Wattmètres ✔️ Matérielle ✖️ ✔️

PowerScope ✔️ Processus OS ✔️

pTop ✔️ Processus OS pour le réseau ✖️

Energy Checker ✔️ Code source Application ✔️

Profilers OS ✖️ Processus ✖️ ✖️

Profilers logiciels ✖️ Code source Dépend du profiler ✖️

✔️ Code source ✖️ ✖️

Idéal

(12)

Mesure énergétique des logiciels!

…et ce que nous faisons avec !

(13)

Approches

(14)

Mesure du code source

(15)

Mesure du code source

Matériel & OS Application

(16)

Mesure du code source

Matériel & OS

Application Utilisant des

resources matériels

(17)

Mesure du code source

Modèles énergétiques

Matériel & OS

Application Utilisant des

resources matériels

Consommation énergétique du matériel

Documentation des fabricants

(18)

Mesure du code source

Modèles énergétiques

Matériel & OS

Application Utilisant des

resources matériels

Consommation énergétique du matériel Utilisation des resources

par le logiciel

Documentation des fabricants

(19)

Mesure du code source

Utilisation des resources par le code source

Modèles énergétiques

Matériel & OS

Application Utilisant des

resources matériels

Consommation énergétique du matériel Utilisation des resources

par le logiciel

Documentation des fabricants

(20)

Mesure du code source

Utilisation des resources par le code source

Consommation énergétique du process

Modèles énergétiques

Matériel & OS

Application Utilisant des

resources matériels

Consommation énergétique du matériel Utilisation des resources

par le logiciel

Documentation des fabricants

(21)

Mesure du code source

Utilisation des resources par le code source

Consommation énergétique du code

source du logiciel Consommation énergétique du process

Modèles énergétiques

Matériel & OS

Application Utilisant des

resources matériels

Consommation énergétique du matériel Utilisation des resources

par le logiciel

Documentation des fabricants

(22)

Benchmarking du code

(23)

Benchmarking du code

Librairie logicielle

(24)

Benchmarking du code

Détection des classes et méthodes de la librairie Librairie

logicielle

(25)

Benchmarking du code

Détection des classes et méthodes de la librairie

Génération de

benchmarks pour chaque méthode et paramètre Librairie

logicielle

(26)

Benchmarking du code

Détection des classes et méthodes de la librairie

Exécution des

benchmarks et mesure de l’énergie avec Jalen

Génération de

benchmarks pour chaque méthode et paramètre

Mesure niveau code source

Librairie logicielle

(27)

Benchmarking du code

Détection des classes et méthodes de la librairie

Exécution des

benchmarks et mesure de l’énergie avec Jalen

Génération de

benchmarks pour chaque méthode et paramètre

Mesure niveau code source

Librairie logicielle

Agrégation des résultats et génération du modèle

énergétique

(28)

Jalen : mesure énergétique

au niveau code source

(29)

Jalen architecture

(30)

Machine virtuelle Java

Jalen architecture

Matériel et OS Application Java

(31)

Machine virtuelle Java

Jalen architecture

Jalen

Matériel et OS Application Java

(32)

Machine virtuelle Java

Jalen architecture

Consommation énergétique du code

source du logiciel

Jalen

Matériel et OS Application Java

(33)

Échantillonnage statistique

(34)

Application Java

Échantillonnage statistique

Jalen

Méthode 1

Méthode n

(35)

Application Java

Échantillonnage statistique

Jalen

Méthode 1

Méthode n

Données collectées : statistiques sur les méthodes, entrées/sorties, utilisation des APIs, etc.

(36)

Application Java

Échantillonnage statistique

Jalen

Méthode 1

Méthode n

Calculs et corrélation (collecte de mesures et modèles)

Données collectées : statistiques sur les méthodes, entrées/sorties, utilisation des APIs, etc.

(37)

Application Java

Échantillonnage statistique

Consommation énergétique du code source du logiciel

Jalen

Méthode 1

Méthode n

Calculs et corrélation (collecte de mesures et modèles)

Données collectées : statistiques sur les méthodes, entrées/sorties, utilisation des APIs, etc.

(38)

Application Java

Échantillonnage statistique

Consommation énergétique du code source du logiciel

Jalen

Méthode 1

Méthode n

Calculs et corrélation (collecte de mesures et modèles)

Données collectées : statistiques sur les méthodes, entrées/sorties, utilisation des APIs, etc.

Boucle de monitoring de

l’application

(39)

Application Java

Échantillonnage statistique

Consommation énergétique du code source du logiciel

Jalen

Méthode 1

Méthode n

Calculs et corrélation (collecte de mesures et modèles)

Données collectées : statistiques sur les méthodes, entrées/sorties, utilisation des APIs, etc.

Boucle de monitoring de

l’application

Boucle de monitoring au

niveau code

(40)

Arbre d’appels

(41)

Arbre d’appels

Méthode 1 Méthode 2

(42)

Arbre d’appels

Méthode 1 Méthode 2

Méthode 3 Méthode 4

(43)

Arbre d’appels

Méthode 1 Méthode 2

Méthode 3 Méthode 4 Méthode 5

(44)

Arbre d’appels

Méthode 1 Méthode 2

Méthode 3 Méthode 4 Méthode 5

Méthode JDK 1 Méthode JDK 2

(45)

Arbre d’appels

Méthode 1 Méthode 2

Méthode 3 Méthode 4 Méthode 5

Méthode JDK 1 Méthode JDK 2

Résultats filtrées

(46)

Arbre d’appels

Méthode 1 Méthode 2

Méthode 3 Méthode 4 Méthode 5

Méthode JDK 1 Méthode JDK 2

(47)

Benchmarking du code :!

Jalen Unit

(48)

Benchmarking du code

Détection des classes et méthodes de la librairie

Exécution des

benchmarks et mesure de l’énergie avec Jalen

Génération de

benchmarks pour chaque méthode et paramètre Librairie

logicielle

Agrégation des résultats et génération du modèle

énergétique

Jalen

(49)

Jalen

• Code source sur : github.com/adelnoureddine/jalen!

• Agent Java, utilisation :


java -javaagent:jalen.jar -jar program.jar!

• Caractéristiques matérielles définies dans le fichier

config.properties

(50)

Demo

(51)

Ce qu’on fait avec…

• Étudier l’impact de l’implémentation d’algorithmes et de méthodes!

• Détecter où l’énergie est consommée dans les logiciels et au niveau code source!

• Modéliser la variation énergétique des librairies à la suite

de la modification des paramètres d’entrées

(52)

Des graphes, des

chiffres… !

(53)

Tours de Hanoi: I/O - Print

Avec print

Sans Print

Energie (joule)

0 4500 9000 13500 18000

(54)

Tours de Hanoi: I/O - Print

Avec print

Sans Print

Energie (joule)

0 4500 9000 13500 18000

x13

(55)

Serveur web Jetty

(56)

Serveur web Jetty

Energie (joule)

0 525 1050 1575 2100

Nombre d’invocations

0 11250 22500 33750 45000

BlockingArrayQ ueue

.poll

JarFileRes

ource.exists

JarFileRes

ource.newCo

nnecti on

ManagedSelecto

r.select

Cha nnel

EndPoint.flush ServerCo

nnecto

r.accept

ManagedSelecto

r.wakeup

Cha nnel

EndPoint.shutd

ownOutput

FileRes

ource.normalizeURI FileRes

ource.isDirecto ry

Nombre d'invocations Energie (joule)

(57)

Énergie par invocation

Energie (joule)

0 0,15 0,3 0,45 0,6

BlockingArrayQ ueue

.poll

JarFileRes

ource.exists

JarFileRes

ource.newCo

nnecti on

ManagedSelecto

r.select

Cha nnel

EndPoint.flush ServerCo

nnecto

r.accept

ManagedSelecto

r.wakeup

Cha nnel

EndPoint.shutd

ownOutput

FileRes

ource.normalizeURI FileRes

ource.isDirecto ry

(58)

Benchmarking de la

variation énergétique

(59)

Algorithme de chiffrement RSA

Energie (joule)

0 450 900 1350 1800

Taille de la clé de chiffrement RSA

1024 1280 1536 1792 2048 2304 2560 2816 3072 3328 3584 3840 4096

(60)

Algorithme de chiffrement RSA

Energie (joule)

0 300 600 900 1200

Taille de la clé de chiffrement RSA

1024 1280 1536 1792 2048 2304 2560 2816 3072 3328 3584 3840 4096

java.math.BigInteger.oddModPow java.math.BigInteger.montReduce Autres

(61)

La méthode Joiner.join de Guava

Energie (joule)

0 1000 2000 3000 4000

Nombre de chaînes de caractères

2 6 10 14 18 22 26 30 34 38 42 46 50

com.google.common.base.Joiner$2.appendTo

(62)

En conclusion

• Problématique de l’énergie dans les logiciels!

• Modèles pour mesure la consommation au niveau le plus fin (application, code source)!

• Développement d’un « microscope énergétique » : Jalen !

• Étude de la variation énergétique en utilisant des

benchmarks avec Jalen Unit

(63)

Publications

Adel Noureddine, Romain Rouvoy, and Lionel Seinturier. Inferring Automatically the Energy Consumption of Software Libraries. In Software Engineering Aspects of Green

Computing track of the 29th Annual ACM Symposium on Applied Computing (SAC'14). Gyeongju, South Korea, March 2014.!

Adel Noureddine, Aurélien Bourdon, Romain Rouvoy, and Lionel Seinturier.

Runtime Monitoring of Software Energy Hotspots. In the 27th International Conference on Automated Software Engineering (ASE'12). Pages 160-169. Essen, Germany,

September 2012. Acceptance rate: 15%.!

Adel Noureddine, Aurélien Bourdon, Romain Rouvoy, and Lionel Seinturier. A Preliminary Study of the Impact of Software Engineering on GreenIT. In the First

International Workshop on Green and Sustainable Software (GREENS'12/ICSE'12).

Zurich, Switzerland, June 2012. Acceptance rate: 41%.

Références

Documents relatifs

En comparaison avec la moyenne des fermes bretonnes, l’analyse de ces pratiques auprès de quarante quatre signataires du cahier des charges en Bretagne, montre une baisse de

permettre de stopper l'extraction du produit, ce qui permet de garder un volume minimum dans le réservoir.L'association d'une détection de niveau haut et d'une détection de niveau

Un plan de mesure et de vérification ne se limitera donc plus à l’évaluation des économies d’énergies suite à la mise en place d’actions de performance énergétique

Dans la partie suivante, nous nous intéresserons à la formulation inverse de notre problème, c’est-à-dire à la possibilité à partir d’une courbe d’absorption de remonter

Cet indice présente l'avantage de pouvoir être établi à partir des statistiques d'état civil sur les décès; son calcul n'exige pas de connaître la structure par âge de

Nous appelons gabarit un angle que l'on peut comparer avec d'autres angles.. Découper l'angle au bas de

Pourquoi ces modèles sont-ils utilisés et pourquoi sont-ils en phase d’expansion ? Ces modèles possèdent plusieurs caractéristiques intéressantes. Premièrement, il est apparu que

Designing Household Questionnaires for Developing Countries, Lessons from 15 years of Living Standards Measurement Study, Volume One : World Bank.. The power of survey design