123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134 |
- #!/bin/bash
- # sur orval
- ################################################################################
- # matlab_ex5_launch.oar - exemple de batch permettant de lancer le script Matlab
- # pi_checkpoint_ex5.m sur un noeud / 1 coeurs pour en mode besteffort idempotent
- # Utilisation d'un répertoire de travail en local dans l'espace Scratch
- #
- # pi_checkpoint_ex5.m:
- # - Calcul de l'approximation de pi par la méthode de Leibniz
- # - le programme simule un job long avec des instructions "pause" inutiles
- # afin d'illustrer une solution de checkpoint et de reprise manuelle(*) si le
- # job long a été tué, cf.:
- # https://www-calculco.univ-littoral.fr/utilisation/lancer-un-calcul#r_beseffort
- #
- # Note: le script pi_checkpoint_ex5.m peut-être tester avec Matlab en mode
- # interactif: il suffit de le stopper avec CTRL+C (et le relancer une 2ième fois)
- #
- # manuelle(*) cf. idempotent
- #
- # Usage: oarsub -S ./ matlab_ex5_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 pi_checkpoint_ex5
- # les ressources
- #OAR -l /nodes=1/core=1,walltime=24:00:00
- # la file de soumission
- #OAR -q besteffort
- ## À faire.
- ##OAR -t idempotent
- # 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=pi_checkpoint_ex5.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
- # cp /nfs/home/labo/user/chemin/vers/mes/donnees .
- # cp /nfs/data/labo/user/chemin/vers/mes/autres/donnees .
- # ici il n'y en a pas sauf si un premier run avorté a eu lieu,
- # recopie du checkpoint "check.mat" :
- if [ -e $OAR_WORKDIR/check.mat ] ; then
- cp $OAR_WORKDIR/check.mat .
- fi
- #-----------------------------------------------------------
- # 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
|