matlab_ex2_launch.oar 4.1 KB

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