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