Analyse de performances avec HPCT




Vue d'ensemble

HPCT (High Performance Computing Toolkit) est un ensemble d'outils permettant de mesurer les performances d'un programme Fortran, C ou C++ sur une machine IBM SP. Il permet d'accéder directement aux informations issues des compteurs hardware du processeur Power (nombre de cycles, nombre d'opérations flottantes, cache miss, etc.). Il possède trois composantes :
  1. hpccount est une commande dont le but est de mesurer les performances globales d'un programme. Le résultat des mesures est imprimé sur la sortie standard ou redirigé vers un fichier en fin d'exécution du programme.

  2. libhpc est une bibliothèque de procédures permettant à l'utilisateur de focaliser les mesures sur les parties du code qu'il souhaite instrumenter (ex. fonctions, sous-programmes, boucles,etc.) . En fin d'exécution, le résultat des mesures est enregistré dans deux fichiers. Le premier suffixé par .hpm est un fichier texte, le second suffixé par .viz doit être visualisé avec l'outil peekperf

    La bibliothèque libhpc définit trois types d'appels :

    L'utilisation de ces appels nécessite l'inclusion du fichier d'en-tête :

    Attention : dans un programme Fortran, le nom des procédures appelées doit impérativement apparaître en minuscules et à la compilation, le fichier doit passer par le préprocessseur C. C'est automatique pour les programmes suffixés par F, F90 ou F03 mais dans les autres cas, cela nécessite l'utilisation de l'option -qsuffix=cpp=suffix ou suffix est le suffixe du programme source (f90, f ou f03).

  3. peekperf est une interface graphique qu'on lance après l'execution, qui permet lire un ou plusieurs fichiers .viz et affiche, sous forme de tableaux, les performances relatives aux différentes régions instrumentées dans l'application.

Utilisation

En partant d'exemples simples, nous allons montrer pas à pas comment utiliser HPCT pour mesurer et interpréter les performances globales ou partielles des programmes :

Notes


© CNRS - IDRIS, 23/04/2012