12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485 |
- #!/bin/bash
- #------------------- CHECKPOINT DMTCP OpenMP ex4 ---------------------------
- #
- # Programme test de dmtcp dans le cas Multithreads (OpenMP)
- # - 20 multiplications matricielles (2000x2000)
- # - avec 8 threads le temps est un peu plus de 4 minutes
- # - le programme est lancer avec l'option -i 180s
- # de dmtcp (un checkpoint au bout de 3mn)
- # - comme dans l'exemple checkpoint-dmtcp1.oar, le walltime du script
- # OAR est "trop court" : il ne finit pas son execution
- # - => il faut relancer le script une deuxième fois (manuellement)
- # le (ce) script qui recharger le script dmtcp_restart_script.sh
- # commande: oarsub -S ./checkpoint-dmtcp-openmp4.oar
- # infos: http://dmtcp.sourceforge.net/
- # IMPORTANT : la reprise de job se fait ici sur le même noeud,
- # merci de consulter la charge sur cluster (noeud libre) sur
- # https://www-calculco.univ-littoral.fr/outils_visu/drawgantt/
- # et EDITER la ligne: OAR -p network_address = 'orval06'
- # (un peu plus bas)
- #-------------- paramètres OAR---------------------------
- # walltime de 6mn ( donc trop court pour le prog/timer de 10mn)
- #OAR -l core=8,walltime=00:3:30
- #OAR -n dmtcp_ex4
- # Les fichiers de sortie sans parametres $OAR_JOBID
- # (=> les jobs successifs ecrivent dans les memes fichiers)
- #OAR -O OAR-ckpt-dmtcp4.out
- #OAR -E OAR-ckpt-dmtcp4.err
- #OAR -q default
- # les tests sont mis au point sur orval06.
- # Note: une reprise de checkpoint sur une autre machine nécessite
- # l'édition du script dmtcp_restart_script.sh
- # A EDITER en fonction de la charge: https://www-calculco.univ-littoral.fr/outils_visu/drawgantt/
- #OAR -p network_address = 'orval01'
- # optionnel
- ##OAR -t besteffort
- # chargement du modeul dmtcp
- source /nfs/opt/env/env.sh > /dev/null 2>&1
- module load dmtcp > /dev/null 2>&1
- #---------- la tâche à exécuter ------------------------
- # compilation ( )
- gfortran -fopenmp -O3 timing-matmul2000.f90 -o matmul2000
- #----------- pré-traitement -----------------------------
- # DWTFYW !
-
- echo "Debut du jobs ou restart ?"
- # si c'est une reprise
- if [ -f dmtcp_restart_script.sh ]; then
- echo " -> reprise du job "
- # piste (changement de nœuds): sed -i '/ancien_noeud/nouveau_noeud/' dmtcp_restart_script.sh
- # (-> testé -OK- a la mano, à scripter!)
- ./dmtcp_restart_script.sh
- else
- # 1er démarrage avec ordre de checkpoint toutes les 2mn 50 (walltime 3mn)
- # Rq: sur un vrai exemple, prendre plus de marge!
- echo " -> Debut du jobs"
- dmtcp_launch -i 180 ./matmul2000
- # pas d'eperluette! (&) sinon le script OAR checkpoint supprimes cf plus bas
- fi
- #---------------------------------------------------------
- # fin du programme: postraitement
- #---------------------------------------------------------
- # DWTFYW!
- echo "---post treatement---"
- # suppression des ckpt (ménage)
- echo "fin effective du programme, suppression des checkpoints"
- rm ckpt_*.dmtcp dmtcp_restart_script*
- exit $?
|