launch_comsol1.oar 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. #!/bin/bash
  2. # sur orval
  3. ################################################################################
  4. # exemple de script oar de lancement de batch COMSOL
  5. # {PATH_COMSOL}/applications/COMSOL_Multiphysics/Equation_Based/heart_electrical.mph
  6. # description du problème:
  7. # {PATH_COMSOL}doc/help/wtpwebapps/ROOT/doc/com.comsol.help.models.mph.heart_electrical/models.mph.heart_electrical.pdf
  8. # Usage: oarsub -S ./launch_comsol1.oar
  9. #
  10. # Note: les directives OAR commencent par #OAR pour les mettre en commentaires
  11. # il faut utiliser un double #
  12. ################################################################################
  13. #-----------------------------------------------------------
  14. # Les directives OAR
  15. #-----------------------------------------------------------
  16. # donner un nom au job
  17. #OAR -n comsol_ex1
  18. # les ressources (ici, par ex, 24 coeurs sur un noeud)
  19. #OAR -l /nodes=1/core=24,walltime=00:20
  20. # la file de soumission default
  21. ##OAR -q default
  22. # ou bien : mode besteffort
  23. #OAR -t besteffort
  24. # restart automatique
  25. ##OAR -t idempotent
  26. # chargement du module comsol
  27. #-----------------------------------------------------------
  28. source /nfs/opt/env/env.sh
  29. module load comsol
  30. # notification par mail ou script
  31. ##OAR --notify mail:prenom.nom@univ-littoral.fr
  32. ##OAR --notify exec:/chemin/vers/mon/script arguments
  33. # affiner (éventuellement) la sélection des noeuds de calculs
  34. # -par exemple avec les noeuds acheter dans le cadre d'un projet/BQR- ;-)
  35. ##OAR -p network_address = 'orvalX' or network_address = 'orvalY' or ...
  36. ##OAR -p nodemodel = 'Dell_R820' and disktype = 'sas'
  37. ## ... cf https://www-calculco.univ-littoral.fr/outils_visu/monika
  38. #OAR -O ex1-comsol-%jobid%.out
  39. #OAR -E ex1-comsol-%jobid%.err
  40. INPUT=heart_electrical.mph
  41. OUTPUT=heart_electrical-out.mph
  42. if [ -s "$OUTPUT.recovery" ]
  43. then
  44. echo "le fichier recovery existe: on relance à partir du checkpoint"
  45. comsol batch -inputfile $INPUT -outputfile $OUTPUT -recover -continue -np 24
  46. else
  47. echo "premier lancement du projet $INPUT"
  48. comsol batch -inputfile $INPUT -outputfile $OUTPUT -np 24
  49. fi
  50. #remarque 1 (checkpoint):
  51. #----------
  52. # la ligne de commande la plus simple aurait pu être:
  53. # comsol batch -inputfile $INPUT -outputfile $OUTPUT
  54. # Ici, la structure de contrôle if then else est mis en place tout simplement
  55. # pour profiter du fait que COMSOL intègre nativement un système d'avancement
  56. # des runs et donc un sytème de «checkpoint à pas cher!» : il suffit de tester
  57. # l'existence d'un fichier $OUTPUT.recovery non vide, pour comprendre que le
  58. # job a été arrêté (volontairement ou walltime trop court ou ...ou ? )
  59. # => il suffit de relancer le script OAR pour relancer le run au stade où il en était.
  60. # remarque 2
  61. #----------
  62. # option -np: dans cet exemple on fixe
  63. # le nombre à 24 pour être cohérent avec les ressources demandées (core=24)
  64. # c'est a priori optimal en terme de perf (1 core = 1 thread)
  65. # c'est inutile si on prend un noeud complet (comsol prend automatiquement tous les coeurs)
  66. # ... mais attention, le "plus" n'est pas forcément optimal
  67. exit $?