[[PageOutline]] = 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 [[BR]] Last revision: A. Jornet (2018/02/26) [[BR]] 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 }}}