#!/bin/bash
#SBATCH --job-name=vtune_run_mpi    # Nom arbitraire du travail Slurm
#SBATCH --output=%x.%j.out          # Fichier de sortie standard du travail
#SBATCH --error=%x.%j.err           # Fichier d'erreur standard du travail
#SBATCH --ntasks=4                  # Nombre de processus MPI demandes
# /!\ Attention, la ligne suivante est trompeuse mais dans le vocabulaire
# de Slurm "multithread" fait bien référence à l'hyperthreading.
#SBATCH --hint=nomultithread    # 1 processus MPI par coeur physique (pas d'hyperthreading)
# La ligne ci-dessous peut être décommentée pour passer en mode exclusif et disposer
# d'un accès complet aux compteurs matériels (cf. les bonnes pratiques pour le profilage)
##SBATCH --exclusive -C prof
#SBATCH --time=0:20:00              # Temps du job hh:mm:ss (0h20mn ici)

## Choix d'un environnement Intel disposant de VTune
module load intel-all/19.0.4

## Echo des commandes
set -x

## Execution dans le SCRATCH
cd $SCRATCH

# Selection d'un repertoire different a chaque run.
export DIR_PROF=profiling.$SLURM_NTASKS.$SLURM_JOB_ID

# Pour ne pas utiliser le /tmp
export TMPDIR=$SCRATCH

## Echantillonnage de type hotspots du binaire ./my_bin_exe avec 
## ecriture des resultats dans le repertoire $WORKDIR/$DIR_PROF
## et limitation de la quantite de donnees collectees (ici 4000 MB)
srun amplxe-cl -q -collect hotspots -r $DIR_PROF -data-limit=4000 -- ./my_bin_exe