matlab_ex3_launch.oar 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119
  1. #!/bin/bash
  2. # sur orval
  3. ################################################################################
  4. # matlab_ex3_launch.oar - exemple de batch permettant de lancer le script Matlab
  5. # parfor_print_ex3.m sur un noeud / 16 coeurs pour 20 minutes max
  6. # Utilisation d'un répertoire de travail en local dans l'espace Scratch
  7. #
  8. # parfor_print_ex3:
  9. # - "Parallel for" (parfor), fonctionnalité basique de la Parallel ToolBox
  10. # - le programme génère une figure illustrant le speedup sur 1,2,4,8,16 coeurs.
  11. # - ...lancer en mode batch, sans interface graphique, il est ESSENTIEL de
  12. # MODIFIER les scripts matlab de sorte à générer des fichiers images (plot -> fichiers!)
  13. #
  14. # Usage: oarsub -S ./ matlab_ex3_launch.oar
  15. #
  16. # Note: les directives OAR commencent par #OAR pour les mettre en commentaires
  17. # il faut utiliser un double #
  18. ################################################################################
  19. #-----------------------------------------------------------
  20. # chargement du module matlab (mise à jour du PATH)
  21. #
  22. # (ajout avril 2017: mise en place de lmod et easybuild sur
  23. # la plateforme)
  24. # http://lmod.readthedocs.io/en/latest/010_user.html
  25. # http://easybuild.readthedocs.io/en/latest/Introduction.html
  26. #-----------------------------------------------------------
  27. source /nfs/opt/env/env.sh >/dev/null 2>&1
  28. module load matlab
  29. #-----------------------------------------------------------
  30. # Les directives OAR
  31. #-----------------------------------------------------------
  32. # donner un nom au job
  33. #OAR -n parfor_ex3
  34. # les ressources
  35. #OAR -l /nodes=1/core=16,walltime=00:20
  36. # la file de soumission
  37. #OAR -q default
  38. # notification par mail ou script
  39. #OAR --notify mail:marion@lmpa.univ-littoral.fr
  40. ##OAR --notify exec:/chemin/vers/mon/script arguments
  41. # affiner la selection des ressources avec les propriétés
  42. # voir sortie de la commande oarnodes sur le frontal pour les connaître
  43. # syntax à la SQL
  44. # ex: novembre 2016: matlab n'était que sur orval 4 et 5
  45. ##OAR -p network_address = 'orval05' or network_address = 'orval04'
  46. ##OAR -p nodemodel = 'Dell_R820' and disktype = 'sas'
  47. # redirection des sorties standard stdout et stderr
  48. # par défaut redirection vers OAR.%jobid%.stdout et OAR.%jobid%.stderr
  49. # dans le répertoire courant
  50. # A mettre dans scratch sous votre arborescence
  51. #OAR -O parfor_ex3.%jobid%.out
  52. #OAR -E parfor_ex3.%jobid%.err
  53. # IMPORTANT (ajout déc.2016):
  54. # inclure dans les ressources demandées un jeton Matlab de sorte
  55. # que le script sera lancé que s'il y a bien un jeton de libre
  56. #OAR -t token:matlab=1
  57. # mode besteffort et restart automatique
  58. ##OAR -t besteffort
  59. ##OAR -t idempotent
  60. PROG=parfor_print_ex3
  61. GROUP=$(id -gn $OAR_USER)
  62. #-----------------------------------------------------------
  63. # Création du répertoire temporaire local dans scratch
  64. #-----------------------------------------------------------
  65. SCRATCHDIR=/scratch/$GROUP/$OAR_USER/$OAR_JOB_NAME.$OAR_JOBID
  66. [ ! -d $SCRATCHDIR ] && mkdir $SCRATCHDIR
  67. #-----------------------------------------------------------
  68. # Recopie du programme et des données en local
  69. #-----------------------------------------------------------
  70. cd $SCRATCHDIR
  71. # programme
  72. cp $OAR_WORKDIR/$PROG.m .
  73. # recopie des données depuis les espaces Data et/ou Home
  74. # ici il n'y en a pas
  75. # cp /nfs/home/labo/user/chemin/vers/mes/donnees .
  76. # cp /nfs/data/labo/user/chemin/vers/mes/autres/donnees .
  77. #-----------------------------------------------------------
  78. # Execution du programme depuis l'espace scratch
  79. #
  80. # NB: options de Matlab en mode batch: -nodesktop -nodisplay -nosplash
  81. #-----------------------------------------------------------
  82. #
  83. matlab -nodesktop -nodisplay -nosplash -batch $PROG
  84. mv $OAR_WORKDIR/$OAR_STDOUT .
  85. mv $OAR_WORKDIR/$OAR_STDERR .
  86. #-----------------------------------------------------------
  87. # suppression du programme et des données utilisées en entrée
  88. # avant transfert
  89. #-----------------------------------------------------------
  90. rm ./$PROG.m
  91. #rm mes_donnees_copiees_de home
  92. #rm mes_donnees_copiees_de_data
  93. #-----------------------------------------------------------
  94. # transfert des résultats vers Home ou Data
  95. # ici vers le répertoire Home du programme
  96. #-----------------------------------------------------------
  97. cd ..
  98. cp -pR $SCRATCHDIR $OAR_WORKDIR
  99. rm -rf $SCRATCHDIR