An gprof-like profiler tools essential for all ones profiling there programs. myproof uses the gcc version 4.5 or higher allowing to use plugins. This project has been developed to validate the "advanced compilation module" during the HPC'MSc.
Formation échiquéenne jwhyCHESS, parallèle avec la planification de projet
Presentation MyProof
1. Pr´sentation de myproof
e
Aur`le Mah´o, Caner Candan
e e
aurele.maheo@gmail.com, caner@candan.fr
M2 MIHP
7 f´vrier 2011
e
Aur`le Mah´o, Caner Candan aurele.maheo@gmail.com, caner@candan.fr de profiling myproof
e e Outil
2. Features
passes
report params init
summary
myproof
gcc plugin
profiler end
pragmas
measure
error
Figure: Hierarchy of features
Aur`le Mah´o, Caner Candan aurele.maheo@gmail.com, caner@candan.fr de profiling myproof
e e Outil
3. Introduction
Logiciel de profiling
Interface Modulable
Gestion des pragmas
Instrumentation statique
Instrumentation dynamique
Analyse et visualisation des r´sultats
e
Et le multithreading ?
Aur`le Mah´o, Caner Candan aurele.maheo@gmail.com, caner@candan.fr de profiling myproof
e e Outil
4. Directives pragma
Souci de modularit´ e
2 styles de d´clarations
e
pragma instrumente foo
pragma instrumente (fct1, fct2)
Gestion d’erreur
Aur`le Mah´o, Caner Candan aurele.maheo@gmail.com, caner@candan.fr de profiling myproof
e e Outil
5. Instrumentation statique
Instrumentation “statique” → Compilation
Inspection des acc`s m´moire (load/store)
e e
On cherche ` d´tecter les blocs de base ainsi que les boucles
a e
2 passes concern´es : “pass loop” et “pass bb”
e
Parcours des blocs de base
Repr´sentation GIMPLE
e
Affectation (GIMPLE ASSIGN) ?
Analyse des op´randes
e
Utilisation de la passe de r´f´rence ”parloops” ainsi que des
ee
options d’optimisation ”-O1” ou ”-O2”
Permet de g´n´rer un graphe CFG
e e
Aur`le Mah´o, Caner Candan aurele.maheo@gmail.com, caner@candan.fr de profiling myproof
e e Outil
6. Instrumentation dynamique
Le pragma permet d’enregistrer les fonctions ` instrumenter
a
Parcours des blocs de base d’entr´e et de sortie des fonctions
e
` l’aide d’une passe d’instrumentation
a
On utilise une librairie “measure” contenant
“myproof measure start(fname)” et “myproof measure stop”
Mesure avec l’instruction assembleur RDTSC
Aur`le Mah´o, Caner Candan aurele.maheo@gmail.com, caner@candan.fr de profiling myproof
e e Outil
7. Analyse des instrumentations
Parsing des fichiers de sortie (LEX et YACC)
Profilage inclusif → profilage exclusif ? Arbre n-aire
D´tection des imbrications entre fonctions
e
Gestion des instances → comparaison des temps d’ex´cution
e
Corr´lation entre instrumentations statique et dynamique
e
Calcul des latences de load et store ? Non
Graphe d’appel des fonctions
Aur`le Mah´o, Caner Candan aurele.maheo@gmail.com, caner@candan.fr de profiling myproof
e e Outil
8. Et le multithreading ?
Ex´cution multithread´e → ´criture concurrente sur les prises
e e e
de mesure
Utilisation des mutex acc`s exclusif aux donn´es
e e
S´maphores POSIX → synchronisation des actions entre
e
processus
Mot cl´ “ thread”
e
Aur`le Mah´o, Caner Candan aurele.maheo@gmail.com, caner@candan.fr de profiling myproof
e e Outil