User Tools

Site Tools


calcul:cluster:exemples_batchs

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
calcul:cluster:exemples_batchs [2015/10/15 11:36]
claude mercier
calcul:cluster:exemples_batchs [2015/10/21 16:34] (current)
claude mercier
Line 1: Line 1:
-Un script à envoyer sur le cluster va contenir les instructions sous la forme  +**Un script à envoyer sur le cluster va contenir les instructions sous la forme \\ 
-#​SBATCH ​  +#​SBATCH  ​intructions\\ 
-en debut de ligne du script (fichier.sh)+en debut de ligne du script (fichier.sh)**
  
-Ensuite on envoie le batch pour execution+**Ensuite on envoie le batch pour execution**
  
-cluster-head>​ sbatch fichier.sh+**cluster-head>​ sbatch fichier.sh**
  
-**exemple 1:** je veux 50 taches independantespeu m'​importe où elles vont s'exécuter+Quand le job est finiou s'execute, on peut voir la sortie dans le repertoire où on a lancé le job. 
 +Un fichier slurm-NNN.out contient la sortie (NNN numéro du job)
  
-''#​!/​bin/​bash+**exemple 1:** je veux 50 taches indépendantes,​ peu m'importe où elles vont s'exécuter 
 + 
 +<​code>​ 
 +#!/bin/bash
  
 #SBATCH -n 50 #SBATCH -n 50
Line 15: Line 19:
 cd repertoire_ou_se_trouve_mes_affaires cd repertoire_ou_se_trouve_mes_affaires
  
-srun mon_executable''​+srun mon_executable 
 +</​code>​
  
 (recuperation du numéro de tache avec la variable d'​environnement SLURM_PROCID) (recuperation du numéro de tache avec la variable d'​environnement SLURM_PROCID)
Line 21: Line 26:
 **exemple 2:** j'ai un code qui demarre plusieurs taches MPI, chaque tache se divisant en 8 avec openMP **exemple 2:** j'ai un code qui demarre plusieurs taches MPI, chaque tache se divisant en 8 avec openMP
  
 +<​code>​
 +#!/bin/bash
 +
 +#SBATCH --job-name=cosmocmc
 +
 +# nombre de noeuds (machine)
 +#SBATCH -N 4
 +
 +# je veux les noeuds pour moi toute seule, je blinde les machines
 +#SBATCH --exclusive
 +
 +# pour chaque tache mpi, elle spawne 8 threads (OpenMP), cosmomc attention num_thread dans .ini
 +#SBATCH -c 8
 +
 +#liste des noeuds alloues pour le job
 +echo "On tourne sur: $SLURM_NODELIST"​
 +# nombre total de noeuds
 +echo "Soit $SLURM_NNODES nodes."​
 +# liste du nombre de CPU pour chaque noeuds
 +echo "job cpu per node = $SLURM_JOB_CPUS_PER_NODE"​
 +
 +# je ne sais pas combien j en veux, depends du nombre de CPUs sur les noeuds
 +temp=`echo $SLURM_JOB_CPUS_PER_NODE | sed s/\(//g | sed s/\)//g | sed s/\,/\+/g | sed s/x/*/g`
 +n=$(($temp))
 +n=$(($n/8))
 +
 +cd slurm_test/​cosmomc_ias_dev/​
 +source environnement
 +cd cosmomc
 +
 +# la je dis que je veux $n taches MPI, il sait avec -c 8 plus haut, qu'il doit dispatcher
 +# une tache pour 8 processeurs.
 +mpirun -n $n  ./cosmomc test_SZs.ini ​  
 +</​code>​
 +
 +**Exemple 3 :**  D'​habitude je lance mes calculs en direct dans idl. 
 +
 +<​code>​
 +#!/bin/bash
 +
 +# je demande 1 noeud
 +#SBATCH -N1
 +
 +#informatif
 +echo "On tourne sur: $SLURM_NODELIST"​
 +
 +# idl va prendre autant de CPUs que disponibles
 +# il lui faut un fichier de commandes à executer
 +# (tout ce que vous taperiez si vous etiez devant)
 +# soit le creer avant, soit  le creer a la volée
 +# dans ce job
 +
 +
 +cat > fichier_commande_idl.bat <<EOF
 + ​mk_an2star
 +EOF
 +
 +
 +idl fichier_commande_idl.bat
 +
 +# j'ai fini plus besoin du fichier.bat
 +rm fichier_commande_idl.bat
 +
 +</​code>​
 +
 +
 +
 +**Exemple 4:** mes calculs doivent s'​exécuter sur une machine avec coprocesseurs (K20 ou PHI)
 +
 +<​code>​
 +#!/bin/bash
 +
 +####### je voudrais phi ou gpu indifferemment
 +#SBATCH -p copro
 +
 +####### si on veut seulement gpu mettre -p K20
 +####### si on veut seulement xeon phi, mettre -p PHI
 +
 +####### mon code utilise une fois lancé 8 processeurs (multithreadé) ​
 +#SBATCH -n 8
 +
 +#SBATCH --job-name "​test_copro"​
 +
 +echo "On tourne sur: $SLURM_NODELIST"​
 +echo "nb procs: $SLURM_JOB_CPUS_PER_NODE"​
 +
 +############​slurm ajoute des variables qui cachent les coprocesseurs #####​CUDA_VISIBLE_DEVICES=NoDevFiles
 +unset CUDA_VISIBLE_DEVICES
 +unset GPU_DEVICE_ORDINAL
 +
 +cd ICL/​CapsBasic
 +make clean
 +make
 +./capsbasic
 +./intelcaps
  
 +./capsbasic NVIDIA
 +./intelcaps NVIDIA
 +</​code>​
  
  
calcul/cluster/exemples_batchs.1444901761.txt.gz · Last modified: 2015/10/15 11:36 by claude mercier