#!/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 $?