checkpoint-dmtcp-openmp4.oar 2.9 KB

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