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