Travailler en mode batch
Recommandations importantes
Nous vous conseillons d’abopter la forme suivante pour le script de soumission en batch (SGE) :
| ligne | contenu | commentaires |
|---|---|---|
| 1 | # !/bin/bash | Lecture de $HOME/.bashrc |
| 2 | D’abord les directives SGE | |
| 3 | #$ directive 1 | (#$ en début de ligne) |
| 4 | #$ directive 2 | (#$ en début de ligne) |
| 5 | Puis les commandes utilisateur | |
| 6 | # commentaire | (# indique un commentaire) |
| 7 | commande 1 | (commande shell / exécutable) |
| 8 | commande 2 | (commande shell / exécutable) |
NE PAS POSITIONNER les variables dans la partie "directives SGE" :
-
#$ -v VARIABLE=valeur -
#$ -V
POSITIONNER les variables dans la partie "commandes utilisateur" ; ces variables seront utilisées à l’exécution :
- export VARIABLE=valeur
VERIFIER SYSTEMATIQUEMENT les variables dans la partie "commandes utilisateur" :
- echo "VARIABLE vaut" $VARIABLE
Voici :
- un exemple de script de soumission ;
- ainsi qu’une explication détaillée des différentes étapes de traitement du scriopt de soumission.
Procédure générale
Avant de pouvoir travailler en mode traitement par lots/batch vous devez créer votre environnement de travail, en particulier un exécutable. Deux étapes donc :
- En interactif sur le maître créez et testez votre exécutable avec les contraintes suivantes :
- < 5 minutes de temps de calcul
- < 32 Go de mémoire vive ;
- L’environnement de travail créé, vos calculs sont lancés et gérés par le gestionnaire batch SGE. On appelle jobs vos programmes de calculs pris en charge par SGE. Vous soumettez vos jobs en ligne de commande via un script de soumission :
- Il existe trois types de jobs :
- les batch jobs qui correspondent à l’exécution d’un programme séquentiel ;
- les parametric jobs aussi appelés array jobs qui consistent en l’exécution en parallèle de plusieurs instances d’un même programme. Ces instances sont complètement indépendantes, seules les données utilisées sont différentes ;
- les parallel jobs qui sont un ensemble de tâches exécutées en parallèle et distribuées sur la GMPCS. Les programmes OpenMP sont distribués sur un seul et même noeud alors que les programmes MPI peuvent être distribués sur plusieurs noeuds.




