Home

[D1.06.01] Mesurer les performances (CPU) sous Linux

image

Contents

1. 18938 92 126525 05 322 63148 jeexin 196 27722 26 85430 33 94 49118 jeecra_ 154 17033 41 67779 29 94 13206 jecreo 257 45068 75 84 88 1044 1075446 jexnum_ 163 13618 68 2023 63 161 202581 jemarq 205 1710 66 0 00 161 3481 infniv 853 On rep re l instruction de l arbre d appel par le num ro entre crochets gauche Ici le num ro 16 indique la fonction tldlr8 comme indiqu la fin du fichier par exemple C est la fonction r f rence le n ud de l arbre Les lignes au dessus sont les appelants de cette fonction ce sont les fonctions parents ceux en dessous sont les fonctions appel es ce sont les fonctions enfants Chaque fonction a deux chiffres principaux le nombre d instructions ex cut es dans elle m me instruction terminale du FORTRAN et le nombre d instructions ex cut es dans les fonctions enfants Fonction parent Fonction parent Fonction r f rence Manuel de d veloppement Fascicule d1 06 Copyright 2015 EDF R amp D Document diffus sous licence GNU FDL http www gnu org copyleft fdl html Code Aster ouh default Titre Mesurer les performances CPU sous Linux Date 09 11 2010 Page 9 12 Responsable Jacques PELLET Cl D1 06 01 R vision 4583 Fonction enfant Fonction enfant Manuel de d veloppement Fascicule d1 06 Copyright 2015 EDF R amp D Document diffus sous licence GNU FDL http www gnu org copylett fdl html Code Aster pr default Titre Mes
2. pas oublier de donner les droits d ex cution ce script desoza aster2 PROF chmod a x astk perf sh desoza aster2 PROF ls l astk perf sh rwxr xr x 1 desoza astergrp 1320 Aug 19 18 29 astk perf sh 1 2 Si l on a besoin de surcharger le code Sur certaines machines des biblioth ques profil es et les ex cutables correspondants sont mis jour chaque semaine Machine Bull aster NEW10 fichier de configuration config prof ex cutable asterp biblioth ques profil es prof lib Machine clpaster home aster NEW10 fichier de configuration config profiling ex cutable asterp biblioth ques profil es lib p Sur ces deux machines il est possible de surcharger la version profil e pratique lorsque l on souhaite tester un nouveau d veloppement touchant aux performances Pour cela il faut ajouter un champ suppl mentaire dans l onglet surcharge d astk et mettre en donn e D le fichier de configuration config prof type conf 1 3 Instrumentation d un ex cutable avec 77 pg ou cc pg Lorsqu on utilise une machine ou une version du code pour laquelle on ne dispose pas des biblioth ques profil es il faut recompiler tous les sources Pour r aliser cette recompilation avec Astk il faut e surcharger tous les sources F77 et C Pour gagner du temps on peut concat ner les sources F77 en paquets 300 routines par exemple e modifier le fichier config tx
3. sont faits par l algorithme de contact 1 9 G n ration d un graphe avec gprof2dot 1 9 1 Pr sentation Pour faciliter l interpr tation d un profiling on d crit dans cette section un petit utilitaire Python gprof2dot qui transforme le fichier texte produit par gprof en un graphe plus simple lire Manuel de d veloppement Fascicule d1 06 Copyright 2015 EDF R amp D Document diffus sous licence GNU FDL http www gnu org copyleft fdl html Code Aster prey default Titre Mesurer les performances CPU sous Linux Date 09 11 2010 Page 11 12 Responsable Jacques PELLET Cl D1 06 01 R vision 4583 Le graphe produit est celui des routines parcourues avec report des colonnes lt B gt et lt C gt en du nombre total d instructions du nombre d appels de la routine Par ailleurs les cellules du graphe sont colori es du bleu vers le rouge pour identifier tr s vite les chemins critiques On trouvera plus d informations sur la page web du d veloppeur de gprof2dot http code google com p jrfonseca wiki Gprof2Dot Le script python est directement accessible ici 1 9 2 Utilisation Une fois le fichier d output produit par gprof r cup r celui ci s appelant gprof output on ex cutera la commande suivante dans un terminal desoza claut621 tmp cat chemin vers gprof output chemin vers gprof2dot py dot Tpng o graphe png Le fichier PNG produit pourra alors tre ouvert avec tout visio
4. 874 124101882 ridlr8_ 17 Ce tableau r sume les appels les plus fr quents e COLONNE lt A gt pourcentage du nombre d instructions ex cut es par cette fonction par rapport au total de l ex cution e COLONNE lt B gt nombre d instructions cumul es par cette fonction et celles qui pr c dent COLONNE lt C gt nombre d instructions pour cette fonction e COLONNE lt D gt nombre d appels a cette fonction e COLONNE lt E gt rapport entre la colonne lt B gt et la colonne lt D gt nombre d instructions moyen par appel de la fonction e COLONNE lt F gt nombre moyen d instructions par appel de la fonction et de ses descendants e COLONNE lt G gt nom de la fonction et son num ro de r f rence entre crochets Dans cet exemple la fonction t1d1r8 a pris 49 4 du total du calcul en tant appel e 161 fois Enfin au d but du fichier nous avons l arbre d appel complet Il sera tri par ordre d appel on commence par le main et on descend ou par une fonction voir les options de gprof Prenons l exemple de tld1rs8 lt A gt lt B gt lt C gt lt D gt lt E gt lt F gt 100263313681 76 14679301 29 161 161 tldlgg 15 16 49 7 100263313681 76 14679301 29 161 tldlr8 16 3129121 03 6207534 02 4485 30537 __upcUpcall 352 35974 59 2749927 50 522 195235 jelibe 65 192341 36 1770419 18 1005 775659 jeveuo 56 47302 73 140745 02 161 202579 jedema_ 102
5. Code Aster pa Aa default Titre Mesurer les performances CPU sous Linux Date 09 11 2010 Page 1 12 Responsable Jacques PELLET Cl D1 06 01 R vision 4583 Mesurer les performances CPU sous Linux R sum Il existe des outils permettant de tracer les temps CPU utilis s profiling dans Code Aster Sur Linux on utilise l outil prof L usage de cet outil impose de compiler tous les sources avec l option pg Le sur co t de l instrumentation est n gligeable La r sultat du profiling est un fichier texte qu il faut interpr ter Pour simplifier l interpr tation on propose en fin de document un outil pour tracer un graphe partir du fichier texte produit par le calcul profil Manuel de d veloppement Fascicule d1 06 Copyright 2015 EDF R amp D Document diffus sous licence GNU FDL http www gnu org copylett fdl html Code Aster pas default Titre Mesurer les performances CPU sous Linux Date 09 11 2010 Page 2 12 Responsable Jacques PELLET Cl D1 06 01 R vision 4583 Table des mati res 1 3 Instrumentation d un ex cutable avec f77 pg OU CC pg sens 4 TA S rco tde FINS tUM MANONESE Een aa dha eee can ann assise eine 5 1 5 Executionidu Cod instrument avec ASK diner aaaea 5 1G Exploitation des TeSulats reiasa aaiae aaia iaa aiaiai aiii 6 1 7 D p uiller les resultats GU profiligi zuina aaa aaa aa Ea 6 Lo A
6. n r f rence a b lt a gt est le nombre de fois ou la fonction enfant a t appel e par la fonction r f rence par rapport au nombre total lt b gt d appels de la fonction enfant e COLONNE lt F gt nom de la fonction Remarques Si le nombre d instructions pour les descendants d une fonction vaut z ro c est que la fonction consid r e n en appelle aucune autre On est au bout de l arbre il ny a que des appels FORTRAN de base dans la fonction c est le cas de infniv par exemple Pour une fonction r f rence donn e si on fait la somme des lt a gt dans la colonne lt E gt des fonctions parents on obtient le nombre d appels total de la fonction r f rence Pour une fonction r f rence donn e si on fait la somme des colonnes lt C gt et lt D gt de ses fonctions enfants on obtient le chiffre de la colonne lt D gt de la fonction r f rence 1 8 Analyse de l exemple Dans l exemple pr sent la fonction tldir8 est co teuse puisqu a elle seule elle repr sente pr s de la moiti du nombre d instructions total de l ex cution On voit galement que ce sont ses propres instructions qui prennent du temps et non l appel ses fonctions enfants le rapport entre les deux atteint 1000 Comme seule la fonction t1d1gg appelle t141r8 il faut regarder l arbre d appel pour cette fonction On voit alors que c est l algorithme de contact frottement fropgd qui est le plus glouton les 2 3 des appels t141gg
7. ne da Fy UR aan isda eta Gdn eRe aa eecadeaenttot et 8 Manuel de d veloppement Fascicule d1 06 Copyright 2015 EDF R amp D Document diffus sous licence GNU FDL http www gnu org copyleft fdl html Versi Code Aster default Titre Mesurer les performances CPU sous Linux Date 09 11 2010 Page 3 12 Responsable Jacques PELLET Cl D1 06 01 R vision 4583 Gprof 1 1 Pour aller vite Si l on a la chance de vouloir profiler la version officielle sur la machine clpaster ou la machine bull la mani re la plus simple de le faire consiste remplacer l ex cutable bouton SURCHARGE par le petit script ci dessous On r cup re alors la fin du fichier message le listing de gprof Remarques Attention l ex cution de l outil gprof est tr s couteuse en temps CPU Par exemple sur la machine clpaster pour une ex cution Aster de 5s gprof consomme 3 minutes Sur la machine bull c est encore pire 25 minutes Mais on peut penser que ce sur co t d pend peu de la dur e de l ex cution profil e c est une constante Cette technique fonctionne galement avec as_run fichier astk_perf sh bin bash Encapsulation de l execution du Code Aster pour pouvoir mesurer les performances CPU avec gprof Mode d emploi 1 recopier ce script pour pouvoir ventuellement le modifier 2 le v rifier choix de l ex cutable profil 3 lancer astk ou run aster t mett
8. nneur d images Un exemple du type de fichier produit est donn e dans la figure suivante 0 78 1x sioux J 1 97 1 724 J 3998745 9995710 170800 185291 sa7eaztex faazocse 822 201682 Manuel de d veloppement Figure 1 graphe d appel genere avec gprof2dot Fascicule d1 06 Copyright 2015 EDF R amp D Document diffus sous licence GNU FDL http www gnu org copyleft fdl html
9. r le fichier gmon out puis on lance l instruction suivante gprof home user asterp gmon out gt listing e Edition du listing pour pouvoir commencer le d pouillement 1 6 Exploitation des r sultats Une fois l tude ex cut e et le fichier gmon out r cup r on peut analyser ce fichier avec la commande gprof mon executable gmon out gt listing Attention il ne faut pas se d courager Pour une ex cution de 30s on a d j vu la commande gprof consommer plus de 5 minutes de CPU Le temps de gprof ne d pend pas trop a priori du temps de l ex cution profil e L interpr tation du fichier obtenu listing est d crite ci dessous Un excellent document d crivant tout le processus de profiling est celui crit par Jay Fenlason et Richard Stallman Gnu gprof The GNU profiler On le trouve facilement sur le Web Remarque M me si l on recompile tous les sources d Aster la profondeur de l analyse des performances s arr tent aux biblioth ques que l on utilise l dition des liens et qui n ont pas t compil es avec pg C est par exemple le cas des routines BLAS Le temps consomm dans ces biblioth ques ne peut pas tre rattach aux routines d Aster qui les appellent Ce d faut peut tre important par exemple si on veut mesurer les performances des solveurs MUMPS ou MULT_ FRONT car une grande partie du temps consomm l est dans des routines BLAS 1 7 D pouiller les r s
10. re comme excutable ce script il peut rester sur la machine locale 4 le resultat des mesures sera imprim dans le fichier fort 6 mess 1 choix de l executable instrument Aster EXECUT home aster NEW10 asterp sur clpaster EXECUT aster NEW10 asterp sur bull echo ex cutable utilis SEXECUT 3 on lance l ex cutable instrument avec tous ses arguments SEXECUT gt gt fort 6 STATUS echo fin ex cution gt gt fort 6 ls ltr gt gt fort 6 4 on lance gprof pour crire au bout de fort 6 fichier message gprof SEXECUT gmon out gt gt fort 6 echo fin criture listing de gprof gt gt fort 6 exit SSTATUS Manuel de d veloppement Fascicule d1 06 Copyright 2015 EDF R amp D Document diffus sous licence GNU FDL http www gnu org copyleft fdl html Versi Code Aster default Titre Mesurer les performances CPU sous Linux Date 09 11 2010 Page 4 12 Responsable Jacques PELLET Cl D1 06 01 R vision 4583 Manuel de d veloppement Fascicule d1 06 Copyright 2015 EDF R amp D Document diffus sous licence GNU FDL http www gnu org copyleft fdl html Versi Code Aster default Titre Mesurer les performances CPU sous Linux Date 09 11 2010 Page 5 12 Responsable Jacques PELLET Cl D1 06 01 R vision 4583 Attention il ne faut
11. s en mode debug sans instrumentation 218s en mode debug avec instrumentation 228s On constate que l instrumentation a un co t CPU n gligeable 1 5 Ex cution du Code instrument avec Astk Une fois cette instrumentation faite il faut ex cuter l tude que l on veut profiler avec l ex cutable que l on vient de produire L ex cution de l tude produit un fichier appel gmon out dans le r pertoire temporaire d ex cution Pour conserver le pr cieux fichier gmon out trois possibilit s existent e La premi re est d utiliser Astk en interactif et cliquer le bouton lancer pre au lieu du classique lancer run Cette option d Astk permet de pr parer l environnement d ex cution On se place ensuite dans le r pertoire pr par et on lance Aster manuellement II s agit de la m me astuce que pour l utilisation d un d bogueur e La deuxi me possibilit consiste rajouter un champ dans le profil astk de type nom et dont la valeur est gmon out On r cup rera alors dans le r pertoire correspondant au chemin de base un fichier de nom gmon out Attention ceci ne fonctionne qu en interactif i e pas en batch sur clpaster et Bull e La troisi me est de modifier le script propos au dessus en rempla ant 4 on lance gprof pour crire au bout de fort 6 fichier mes
12. sage gprof SEXECUT gmon out gt gt fort 6 echo fin criture listing de gprof gt gt fort 6 par 4 on lance gprof pour crire au bout de fort 6 fichier message mv gmon out REPE OUT gprof SEXECUT REPE OUT gmon out gt gt fort 6 echo fin criture listing de gprof gt gt fort 6 et de d finir dans Ast k un repe en r sultat Dans ce r pertoire on retrouve le fichier gmon out et cela aussi bien en interactif qu en batch Manuel de d veloppement Fascicule d1 06 Copyright 2015 EDF R amp D Document diffus sous licence GNU FDL http www gnu org copyleft fdl html Code Aster oh default Titre Mesurer les performances CPU sous Linux Date 09 11 2010 Page 7 12 Responsable Jacques PELLET Cl D1 06 01 R vision 4583 Ainsi une m thodologie de profiling par exemple sur bu11 est la suivante e Cr ation d un profil d tude astk on renseigne les fichiers de l tude fournie et un champ de type nom dont la valeur est gmon out ou un r pertoire dans lequel le fichier gmon out sera copi e Ajout d une surcharge e on renseigne les fichiers de surcharge types c e on renseigne le fichier de configuration type conf config prof localis dans aster v10 NEW10 e on cr e un ex cutable perso par exemple home user asterp e Ex cution du profil d tude par astk e Cr ation du listing e on se place dans le r pertoire o a t g n
13. t pour ajouter l option pg sur les 5 lignes suivantes OPTL 90 v pg OPTE D ce 2 c g pg DP LINUX OPTC_O cc Hy se TEE pg DP LINUX OPTE D 90 c g pg I opt mpich2 1 0 1 include OPTF O 90 c 02 pg I opt mpich2 1 0 1 include Remarques Le fichier config txt ainsi modifi permet d instrumenter le code en mode debug et nodebug Le mode nodebug est a priori pr f rable pour mesurer les vraies performances du code En revanche le mode debug est n cessaire si l on veut conna tre les lignes les plus consommatrices J ai malheureusement observ un probl me inexplicable en mode debug le r sultat du profiling indiquait des liens d appel entre routines qui n existaient pas On peut toutefois esp rer que cette anomalie n invalide pas enti rement le reste de la mesure Manuel de d veloppement Fascicule d1 06 Copyright 2015 EDF R amp D Document diffus sous licence GNU FDL http www gnu org copylett fdl html Versi Code Aster default Titre Mesurer les performances CPU sous Linux Date 09 11 2010 Page 6 12 Responsable Jacques PELLET Cl D1 06 01 R vision 4583 1 4 Sur codt de l instrumentation A titre d exemple j ai profil le test ssnv506c et j ai obtenu les r sultats globaux suivants en mode nodebug sans instrumentation 138s en mode nodebug avec instrumentation 139
14. ultats du profiling Par d faut le fichier est lourd Il est possible de limiter l affichage des infos en jouant avec les options de gprof Les temps syst mes sont indiqu s sous forme de nombre d instructions utilis es On va d tailler un peu en commengant par la fin du fichier Index by function name 401 PyArg Parse 591 cftabl_ 1000 proc at 0x1213acb50 212 PyArg ParseTuple 84 cftyli_ 660 proc at 0x1213ad470 1137 PyArg ParseTupleAnd 310 cgmacy _ 453 proc at 0x1213ad560 1605 PyBuffer FromObject 79 charme 680 proc at 0x1213aeac0 Manuel de d veloppement Fascicule d1 06 Copyright 2015 EDF R amp D Document diffus sous licence GNU FDL http www gnu org copylett fdl html Versi Code Aster default Titre Mesurer les performances CPU sous Linux Date 09 11 2010 Page 8 12 Responsable Jacques PELLET Cl D1 06 01 R vision 4583 1256 PyCFunction Fini 476 chlici 1221 proc at 0x1213aedc0 531 PyCFunction New 190 chloet 217 proc at 0x1213b18e0 1549 PyCObject AsVoidPtr 226 chmano 629 proc at 0x1213b1e00Y Chaque fonction appel e lors de l ex cution est rep r e par un num ro entre crochet Juste au dessus granularity instructions units inst s total 201924201580 70 inst s lt A gt lt B gt lt C gt lt D gt lt E gt lt F gt lt G gt 49 6 100384307222 100384307222 161 623505013 623596299 tldlr8 16 31 0 63144941823 62760634601 506 124032
15. urer les performances CPU sous Linux Date 09 11 2010 Page 10 12 Responsable Jacques PELLET Cl D1 06 01 R vision 4583 Pour la fonction r f rence e COLONNE lt A gt num ro de rep rage de la fonction r f rence e COLONNE lt B gt le chiffre 49 7 est le pourcentage du nombre d instructions ex cut es par cette fonction r f rence par rapport au total de l ex cution idem tableau pr c dent e COLONNE lt C gt nombre d instructions pour la fonction r f rence elle m me e COLONNE lt D gt nombre d instructions pour les fonctions enfants de la fonction r f rence e COLONNE lt E gt nombre de fois ou la fonction a t appel e e COLONNE lt F gt nom de la fonction r f rence Pour les fonctions parents et les fonctions enfants e COLONNE lt A gt vide e COLONNE lt B gt vide e COLONNE lt C gt nombre d instructions pour la fonction elle m me e COLONNE lt D gt nombre d instructions pour les descendants de la fonction e COLONNE lt E gt donne deux chiffres a b dont le sens varie suivant le type de fonction parent ou enfant par rapport la fonction r f rence e Pour les fonctions parents au dessus de la fonction r f rence a b lt a gt est le nombre de fois ou la fonction r f rence a t appel e par cette fonction parent par rapport au nombre total lt b gt d appels de la fonction r f rence Pour les fonctions enfants en dessous de la fonctio

Download Pdf Manuals

image

Related Search

Related Contents

7-page version - University of Wisconsin–Madison  Manual del Transceptor  K|tchen/l|d WASHER LAVEUSE  ar7 user guide - Reichert Technologies: Analytical Instruments    Oster FPSTBW8216-KIT Instruction Manual  Philips FreeMotion Cordless steam iron GC830  Découvrez le NOUVEAU Gel Blattes King !  User Manual: Form for NWMSU Diversity Hours (Outside of Courses  NX-4 FALCON MANUAL DE MONTAGEM  

Copyright © All rights reserved.
Failed to retrieve file