Vous ętes ici : Support technique → Calcul scalaire → Exécution/contrôle d'un code en batch → Code MPI.
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 Vargas.
Pour soumettre un travail MPI en batch, il faut :
> vargas : more mpi.ll
# Nom du travail LoadLeveler
# @ job_name = MPI
# Fichier de sortie standard du travail
# @ output = $(job_name).$(jobid)
# Fichier de sortie d'erreur du travail
# @ error = $(job_name).$(jobid)
# Type de travail
# @ job_type = parallel
# Nombre de processus demandes (ici 8)
# @ total_tasks = 8
# Temps ELAPSED max. pour l'ensemble du job en hh:mm:ss (1h30mn ici)
# @ wall_clock_limit = 1:30:00
# Memoire max. demandee par coeur (ici 1.7 Gigaoctets)
# @ data_limit = 1.7gb
# 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
# Repertoire temporaire de travail
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 d'un programme MPI
./a.out
vargas : llsubmit mpi.ll
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 MPI.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,
si votre travail a des étapes séquentielles relativement longues (pré ou post-traitement, transferts ou archivages de gros fichiers,...), l'utilisation de travaux multisteps peut se justifier.