wiki:Documentation/UserGuide/ProfileVtune

Profiling with Vtune

Objective

Background of this item: Vtune is a type of tool called a profiler it has both a graphical user interface and command line. It is available on Curie and it has been successfully used to analyze multi-processor jobs. Profiling allows you to learn where your program spent its time and which functions called which other functions while it was executing. This information can show you which pieces of your program are slower than you expected and might be candidates for rewriting to make your program execute faster.

Vtune on Curie

Authors: A. Jornet
Last revision: A. Jornet (2018/02/26)

In order to run a profiling on Curie you have to compile orchidee in production mode with -g flag.

Find below the script you need to set up to launch it.

#!/bin/bash
#MSUB -n 32
#MSUB -c 1
#MSUB -T 6000
#MSUB -q standard
#MSUB -Q normal
#MSUB -x

#Basic hotspots collection on several MPI processes
module load vtune
cd $SLURM_SUBMIT_DIR

There are several different types of analysis depending on your needs:

First step, a general hotspots run:

ccc_mprun amplxe-cl -collect hotspots -r $SLURM_SUBMIT_DIR/vtune-results ./myprogram arg1 arg2 arg3

A more specific analysis in advanced-hotspots at processor 0 (mpi root processor):

ccc_mprun -d vtune -R 0 -t advanced-hotspots -o /ccc/work/cont003/dsm/p529jorn/experiments/dev_mictv6_perso_4p/results/ ./orchidee_prod

Launch the job

ccc_msub yourJob.sh
Last modified 4 years ago Last modified on 2020-03-19T16:39:53+01:00