Analyser la performance de votre code : Vtune [amplifierXE]

Description et utilisation de vtune amplifier (outil de profilage multithreadé d’intel)

Article mis en ligne le 30 octobre 2014
dernière modification le 4 mai 2017
logo imprimer

Vtune [amplifierXE] est un outil d’analyse de Performance de code.
Il permet de déterminer facilement les régions chaudes du codes (c’est-à-dire les régions les plus consommatrices en tant de calculs). Il permet de déterminer le profil d’exécution d’un code multihreadé (OpenMP). Par contre, Vtune ne vous dira rien sur les communications inter-nœuds.

Vtune s’utilise de préférence en deux temps :

  1. Collection des données sur un nœud de calcul
  2. Analyse des résultats à travers une interface graphique : amplxe-gui

Collecter les données

Le script suivant, utilisé à travers sbatch, permet d’assurer la collecte des données :

Analyser les données

Charger le module vtune, puis lancer l’interface graphique :

Attention : Vous pouvez aussi lancer votre programme à partir de l’interface graphique, mais dans ce cas il tournera sur la frontale

Ci-dessous quelques copies d’écran sur un cas simple.
Le cas étudié est une produit de matrice 2000x2000 en simple précision (SP).
Le produit est réalisé par appel de la routine BLAS SGEMM de la MKL. Le calcul est multithreadé (-mkl=parallel) sur 20 cœurs physiques.

  • Ci-dessous les temps d’exécution. La majeure partie du temps est dans sgemm (ce qui est attendu). un gain potentiel est indiqué.
    Hot Spot - Points chauds {PNG}
  • Ci-dessous on visualise le % d’utilisation du CPU par les 20 threads du calculs.
    Exactution Time Line % CPU used {PNG}

Ne profiler qu’une partie du code

Afin d’avoir des résultats plus précis, il est souvent nécessaire de ne collecter les données que sur une partie du code : par exemple ne considérer que la boucle principale, en excluant les phases d’initialisation et de terminaison du programme.
Pour cela, il est nécessaire d’ajouter dans votre code quelques appels à des fonctions de vtune. En fortran :

Compilation (en utilisant des versions récentes du compilateur et de vtune) :



Site réalisé sous SPIP
avec le squelette ESCAL-V3
Version : 3.86.44
Hébergeur : INP Toulouse