#!/bin/bash # sur orval ################################################################################ # matlab_ex4_launch.oar - exemple de batch permettant de lancer le script Matlab # spmd_ex4_int_trapeze.m sur un noeud / 16 coeurs pour 20 minutes max # Utilisation d'un répertoire de travail en local dans l'espace Scratch # # spmd_ex4_int_trapeze.m: # - "Simple Program Multiple Data" (SPMD ~ mpi "sauce Matlab") # - le programme calcul une approximation de pi par intégration # - chaque processus (ici 16 "Labs") calcule son aire local par la méthode # des trapèzes # # Usage: oarsub -S ./ matlab_ex4_launch.oar # # Note: les directives OAR commencent par #OAR pour les mettre en commentaires # il faut utiliser un double # ################################################################################ #----------------------------------------------------------- # chargement du module matlab (mise à jour du PATH) # # (ajout avril 2017: mise en place de lmod et easybuild sur # la plateforme) # http://lmod.readthedocs.io/en/latest/010_user.html # http://easybuild.readthedocs.io/en/latest/Introduction.html #----------------------------------------------------------- source /nfs/opt/env/env.sh module load matlab #----------------------------------------------------------- # Les directives OAR #----------------------------------------------------------- # donner un nom au job #OAR -n spmd_ex4 # les ressources #OAR -l /nodes=1/core=16,walltime=00:20 # la file de soumission #OAR -q default # Facultatif (cf commentaire du programme parfor_ex2.m) # mais si actif, doit correspondre au nb de coeurs réservés # (ligne #OAR ci-dessus -l .../core=XX,...) export number_Threads=16 # notification par mail ou script #OAR --notify mail:marion@lmpa.univ-littoral.fr ##OAR --notify exec:/chemin/vers/mon/script arguments # affiner la selection des ressources avec les propriétés # voir sortie de la commande oarnodes sur le frontal pour les connaître # syntax à la SQL ## ex:novembre 2016: matlab était installé que sur orval 4 et 5 ##OAR -p network_address = 'orval05' or network_address = 'orval04' ##OAR -p nodemodel = 'Dell_R820' and disktype = 'sas' # redirection des sorties standard stdout et stderr # par défaut redirection vers OAR.%jobid%.stdout et OAR.%jobid%.stderr # dans le répertoire courant # A mettre dans scratch sous votre arborescence #OAR -O /scratch/lmpa/pmarion/%jobid%.out #OAR -E /scratch/lmpa/pmarion/%jobid%.err # IMPORTANT (ajout déc.2016): # inclure dans les ressources demandées un jeton Matlab de sorte # que le script sera lancé que s'il y a bien un jeton de libre #OAR -t token:matlab=1 # mode besteffort et restart automatique ##OAR -t besteffort ##OAR -t idempotent PROG=spmd_ex4_int_trapeze.m GROUP=$(id -gn $OAR_USER) #----------------------------------------------------------- # Création du répertoire temporaire local dans scratch #----------------------------------------------------------- SCRATCHDIR=/scratch/$GROUP/$OAR_USER/$OAR_JOB_NAME.$OAR_JOBID [ ! -d $SCRATCHDIR ] && mkdir $SCRATCHDIR #----------------------------------------------------------- # Recopie du programme et des données en local #----------------------------------------------------------- cd $SCRATCHDIR # programme cp $OAR_WORKDIR/$PROG . # recopie des données depuis les espaces Data et/ou Home # ici il n'y en a pas # cp /nfs/home/labo/user/chemin/vers/mes/donnees . # cp /nfs/data/labo/user/chemin/vers/mes/autres/donnees . #----------------------------------------------------------- # Execution du programme depuis l'espace scratch # # NB: options de Matlab en mode batch: -nodesktop -nodisplay -nosplash #----------------------------------------------------------- # matlab -nodesktop -nodisplay -nosplash < $PROG > matlab.out mv $OAR_STDOUT . mv $OAR_STDERR . #----------------------------------------------------------- # suppression du programme et des données utilisées en entrée # avant transfert #----------------------------------------------------------- rm ./$PROG #rm mes_donnees_copiees_de home #rm mes_donnees_copiees_de_data #----------------------------------------------------------- # transfert des résultats vers Home ou Data # ici vers le répertoire Home du programme #----------------------------------------------------------- cd .. cp -pR $SCRATCHDIR $OAR_WORKDIR rm -rf $SCRATCHDIR