Vtune

From Alliance Doc
Jump to navigation Jump to search
This site replaces the former Compute Canada documentation site, and is now being managed by the Digital Research Alliance of Canada.

Ce site remplace l'ancien site de documentation de Calcul Canada et est maintenant géré par l'Alliance de recherche numérique du Canada.

This page is a translated version of the page Vtune and the translation is 100% complete.
Other languages:


Introduction

VTune est un produit d'Intel pour analyser la performance des systèmes et des applications OpenMP et MPI.

Module logiciel

Pour charger le module sur une de nos grappes, lancez

Question.png
[name@server ~]$ module load vtune

Changement de noms

Il sera question ici de Intel® VTune™ Amplifier, dont le nom a été changé pour Intel® VTune™ Profiler dans la documentation des plus récentes versions. Aussi, les commandes amplxe-cl et amplxe-gui ont été renommées vtune et vtune-gui respectivement pour la ligne de commande et les outils graphiques. Les versions des modules VTune offertes pour nos grappes sont antérieures au changement de ces noms. Pour plus d'information, voyez cette page du guide de l'utilisateur.

Types d'analyses

Pour collecter de l'information pour analyse, lancez

Question.png
[name@server ~]$ vtune -collect <analysis-type> <target_exe> <exe_arguments>

où <analysis-type> est le nom d'un type d'analyse disponible (par ex. hotspots), et <target_exe> est le chemin vers l'exécutable que vous voulez analyser. Nous vous recommandons de compiler votre exécutable avec l'option -g et d'utiliser le niveau d'optimisation normal afin d'obtenir des résultats exacts. Il est possible de faire lister sur la ligne de commande des options d'arguments spécifiques à une version ainsi que plusieurs exemples d'utilisation avec vtune -help, après avoir chargé le module VTune. Téléchargez la documentation de Parallel Studio XE (incluant VTune) et le guide de l'utilisateur Intel VTune Profiler User Guide.

Créer un rapport

Pour créer un rapport, lancez

Question.png
[name@server ~]$ vtune -report <report-type>

où <report-type> est le type de rapport à générer (hotspots). Voyez aussi la page Generate Command Line Reports.

Exemple de matrice

Pour analyser et générer le projet Intel Matrix Sample Project en ligne de commande avec 4 cœurs :

salloc --time=1:00:00 --cpus-per-task=4 --ntasks=1 --mem=16G --account=def-yours
module load StdEnv/2020 vtune
cp -a $EBROOTVTUNE/vtune/$EBVERSIONVTUNE*/samples/en/C++/matrix . cd matrix/linux
make icc
vtune -collect hotspots ../matrix
vtune -report summary 

La plus récente version de matrix_multiply (qui construit avec cmake) se trouve ici.

Mode graphique

Intel Matrix Sample Project peut être exécuté en mode graphique, comme décrit ici [1]. Pour utiliser VTune dans VNC voyez les directives ci-dessous. Le mode graphique peut être utile pour générer des configurations en commande de ligne, comme décrit ici [2].

Nœuds des grappes

  1. Connectez-vous à un nœud de calcul ou à un nœud de connexion avec TigerVNC;
  2. module load StdEnv/2020 vtune
  3. vtune-gui

Nœuds VDI

  1. Connectez-vous à un nœud de calcul ou à un nœud de connexion avec TigerVNC;
  2. module load CcEnv StdEnv/2020 vtune
  3. vtune-gui


MPI example

First, load the latest VTune module.

module load StdEnv/2020
module load vtune

Then compile your MPI program as you usually would and run it inside a job or in an interactive session started by a salloc command using:

srun aps your_mpi_program.x

After the program finishes, the profiling data will be stored in a directory called aps_result_YYYYMMDD where YYYYMMDD is the current date.

There is a lot of information you can extract from that data. To get the basic summary report of your program's performance, run:

aps-report  -D aps_result_YYYYMMDD

where you would replace YYYYMMDD to match the actual directory that has been created. This command creates an HTML file, which can be copied to your own computer and viewed in a browser. The report will clearly identify performance issues that are affecting your code.

Example report generated by aps for an MPI program