Profiler votre code avec map
Article mis en ligne le 19 février 2019
dernière modification le 18 juin 2019

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 :

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 :

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

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