matlab_ex1_launch.oar 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124
  1. #!/bin/bash
  2. # update : avril 2020
  3. # sur orval
  4. ################################################################################
  5. # matlab_ex1_launch.oar - exemple de batch permettant de lancer le script Matlab
  6. # system_ex1.m sur un noeud / 8 coeurs pour 20 minutes max
  7. # Utilisation d'un répertoire de travail en local dans l'espace Scratch
  8. #
  9. # system_ex1:
  10. # - résolution d'un système linéaire Ax=b où A est soit triangulaire soit symétrique
  11. # - matlab dispose d'une multitude de fonctions "built-in" qui sont nativement
  12. # "multithreadées" (cf https://fr.mathworks.com/discovery/matlab-multicore.html)
  13. #
  14. # Usage: oarsub -S ./ matlab_ex1_launch.oar
  15. #
  16. #
  17. # Note: les directives OAR commencent par #OAR pour les mettre en commentaires
  18. # il faut utiliser un double #
  19. ################################################################################
  20. #-----------------------------------------------------------
  21. # chargement du module matlab (mise à jour du PATH)
  22. #
  23. # (ajout avril 2017: mise en place de lmod et easybuild sur
  24. # la plateforme)
  25. # http://lmod.readthedocs.io/en/latest/010_user.html
  26. # http://easybuild.readthedocs.io/en/latest/Introduction.html
  27. #-----------------------------------------------------------
  28. source /nfs/opt/env/env.sh >/dev/null 2>&1
  29. module load matlab
  30. #-----------------------------------------------------------
  31. # Les directives OAR
  32. #-----------------------------------------------------------
  33. # donner un nom au job
  34. #OAR -n system_ex1
  35. # les ressources
  36. #OAR -l /nodes=1/cpu=1/core=8,walltime=00:20
  37. # la file de soumission
  38. #OAR -q default
  39. # notification par mail ou script
  40. ##OAR --notify mail:prenom.nom@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. # ex novembre 2016: matlab était 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/system_ex1.%jobid%.out
  53. #OAR -O system_ex1.%jobid%.out
  54. ##OAR -E /scratch/lmpa/pmarion/system_ex1.%jobid%.err
  55. #OAR -E system_ex1.%jobid%.err
  56. # IMPORTANT (ajout déc.2016):
  57. # inclure dans les ressources demandées un jeton Matlab de sorte
  58. # que le script sera lancé que s'il y a bien un jeton de libre
  59. #OAR -t token:matlab=1
  60. # mode besteffort et restart automatique
  61. ##OAR -t besteffort
  62. ##OAR -t idempotent
  63. PROG=system_ex1
  64. GROUP=$(id -gn $OAR_USER)
  65. #-----------------------------------------------------------
  66. # Création du répertoire temporaire local dans scratch
  67. #-----------------------------------------------------------
  68. SCRATCHDIR=/scratch/$GROUP/$OAR_USER/$OAR_JOB_NAME.$OAR_JOBID
  69. [ ! -d $SCRATCHDIR ] && mkdir $SCRATCHDIR
  70. #-----------------------------------------------------------
  71. # Recopie du programme et des données en local
  72. #-----------------------------------------------------------
  73. cd $SCRATCHDIR
  74. # programme
  75. cp $OAR_WORKDIR/$PROG.m .
  76. # recopie des données depuis les espaces Data et/ou Home
  77. # ici il n'y en a pas
  78. # cp /nfs/home/labo/user/chemin/vers/mes/donnees .
  79. # cp /nfs/data/labo/user/chemin/vers/mes/autres/donnees .
  80. #-----------------------------------------------------------
  81. # Execution du programme depuis l'espace scratch
  82. #
  83. # NB: options de Matlab en mode batch: -nodisplay -nosplash
  84. # -nojvm si moteur java inutile
  85. #-----------------------------------------------------------
  86. #
  87. matlab -nodisplay -nojvm -batch $PROG
  88. mv $OAR_WORKDIR/$OAR_STDOUT .
  89. mv $OAR_WORKDIR/$OAR_STDERR .
  90. #-----------------------------------------------------------
  91. # suppression du programme et des données utilisées en entrée
  92. # avant transfert
  93. #-----------------------------------------------------------
  94. rm ./$PROG.m
  95. #rm mes_donnees_copiees_de home
  96. #rm mes_donnees_copiees_de_data
  97. #-----------------------------------------------------------
  98. # transfert des résultats vers Home ou Data
  99. # ici vers le répertoire Home du programme
  100. # suppression des fichiers sur /scratch
  101. #-----------------------------------------------------------
  102. cd ..
  103. cp -pR $SCRATCHDIR $OAR_WORKDIR
  104. rm -rf $SCRATCHDIR