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

Next revision
Previous revision
calcul:cluster:exemples_batchs [2015/10/15 11:27]
claude mercier created
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)+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+**cluster-head>​ sbatch fichier.sh**
  
-exemple 1: je veux 50 taches, peu m'​importe où elles vont s'​exécuter+Quand le job est fini, ou 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) 
 + 
 +**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
-srun env | grep SLURM_PROCID 
  
-(dans ce cas precis, demande ​d'​environnement ​au lieu de mettre son executable, ne va faire de retourner le numero ​de process)+cd repertoire_ou_se_trouve_mes_affaires 
 + 
 +srun mon_executable 
 +</​code>​ 
 + 
 +(recuperation du numéro de tache avec la variable ​d'​environnement ​SLURM_PROCID) 
 + 
 +**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 seuleje 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.1444901252.txt.gz · Last modified: 2015/10/15 11:27 by claude mercier