Exécution d'un travail séquentiel en batch
Les travaux sont gerés sur l'ensemble des noeuds par le logiciel
LoadLeveler.
Ils sont répartis après soumission dans des "classes".
Vous pouvez consulter ici les limites des classes sur Ulam.
Exemple simple de soumission
Pour soumettre un travail en batch sur Ulam, il faut :
- Créer un script de soumission. Voici un exemple stocké dans le
fichier prog.ll :
ulam : more prog.ll
# Temps Elapsed max. d'une requete hh:mm:ss (0h30mn ici)
# @ wall_clock_limit = 0:30:00
# Memoire requise (max de 8Go)
# @ as_limit = 4gb
# Nom du travail LoadLeveler
# @ job_name = Sortie
# Fichier de sortie standard du travail
# @ output = $(job_name).$(jobid)
# Fichier de sortie d'erreur du travail
# @ error = $(job_name).$(jobid)
# pour recevoir un mail en cas de depassement du temps Elapsed (ou autre pb.)
# @ notification = error
# @ queue
# Pour avoir l'echo des commandes
set -x
# On se place dans le repertoire temporaire TMPDIR
cd $TMPDIR
# La variable LOADL_STEP_INITDIR est automatiquement positionnee par
# LoadLeveler au repertoire dans lequel on tape la commande llsubmit
cp $LOADL_STEP_INITDIR/a.out .
# Execution du programme
./a.out
ls -lrt
- Soumettre ce script via la commande
llsubmit :
ulam : llsubmit prog.ll
Remarques
- Dans cet exemple, on suppose que l'exécutable a.out
se situe dans le répertoire de soumission, c'est-à-dire le répertoire dans lequel
on entre la commande llsubmit (la variable LOADL_STEP_INITDIR
est automatiquement valorisée par LoadLeveler).
- Le fichier de sortie du calcul Sortie.numero_job se trouve également
dans le répertoire de soumission. Il est créé dès le début
de l'exécution du travail; l'éditer ou le modifier pendant le déroulement
du travail peut perturber celui-ci.
Mots-clefs LoadLeveler utiles
-
notification
Le mot-clef LoadLeveler notification
peut être utilisé pour recevoir un message.
notification = complete génère un mail en fin de travail;
notification = all au démarrage et à la fin d'un travail.
Ces mails sont le seul moyen de récupérer éventuellement un message d'erreur
du type WALL CLOCK limit exceeded.
Nous recommandons de n'utiliser que
notification = error pour ne genérer un message qu'en cas de problème.
-
as_limit
Le mot-clef LoadLeveler as_limit permet de spécifier une taille
mémoire inférieure à la limite par défaut de 4 Gb. Pensez à coder au plus
juste la mémoire afin de permettre une meilleure répartition des requètes
batch. La directive s'utilise de la façon suivante :
# @ as_limit = 2gb
© CNRS - IDRIS, 23/04/2012