|
@@ -0,0 +1,93 @@
|
|
|
|
+#!/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
|
|
|
|
+
|
|
|
|
+#OAR -l /nodes=1/core=28,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
|
|
|
|
+
|
|
|
|
+# IMPORTANT réserver le jeton : à mettre en place
|
|
|
|
+##OAR -t token:comsol=1
|
|
|
|
+
|
|
|
|
+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 28
|
|
|
|
+else
|
|
|
|
+ echo "premier lancement du projet $INPUT"
|
|
|
|
+ comsol batch -inputfile $INPUT -outputfile $OUTPUT -np 28
|
|
|
|
+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 (facultative) : dans cet exemple on fixe
|
|
|
|
+# le nombre à 16 pour être cohérent avec les ressources demandées (core=16),
|
|
|
|
+# 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)
|
|
|
|
+
|
|
|
|
+exit $?
|
|
|
|
+
|