Profiler votre code avec map

Pour profiler votre code, vous devez travailler en deux temps :

  1. Exécuter le code en lançant les instructions de profilage. Cette opération générera un fichier de données.
  2. Utilisez l’outil de visualisation pour lire les données acquises à l’étape 1

Il est recommandé de compiler son code avec le switch -g pour corréler les différentes phases du profil observé avec le code. Mais à l’inverse de ce qui est recommandé pour la phase de débogage (voir ici, il est utile de garder les options d’optimisation pour avoir un profil correct.

Profiler son code avec map

Dans le fichier de soumission sbatch, il vous suffit de modifier l’appel srun par :

module load arm/20.1.2
map --profile srun mon_appli...

Voir les résultats avec map

La commande ci-dessus produira un fichier dont le nom ressemblera à :
mon_appli_2019-02-19_15-47.map

Il suffit alors d’ouvrir le visualiseur par :

map mon_appli_2019-02-19_15-47.map

Il s’agit d’un outil graphique, vous devrez donc ouvrir une session X11 :

  • Vous connecter avec ssh -X
  • Si le débit réseau est insuffisant, ssh -XC permet d’améliorer la fluidité de l’affichage
  • Si cela ne suffit pas, utilisez une session graphique

La partie supérieure de l’écran ressemblera à la figure ci-dessous. Si vous avez compilé votre code avec le switch -g, et si map est capable de trouver les sources de votre programme, vous pourrez alors établir une corrélation entre le profil affiché en haut de l’écran et le code (qui sera affiché en bas de l’écran).

Sortie de map

Le menu Metrics permet de choisir ce qu’on regarde : les entrées-sorties, les appels mpi, etc.

Espace utilisateurs/Doc technique Olympe/Améliorer les performances

Voir aussi

Analyser la performance de votre code : VTune

Description et utilisation de VTtune (outil de profilage d’Intel)

APS Intel

Application Performance Snapshot est un outil d'analyse de performance d'Intel ® L’utilisation d'APS se fait en deux étapes :

Le débogueur ddt

NOTE - L'éditeur de ce débogueur s'appelle arm, auparavant c'était allinea