Description
Les tâches distribuées sont soumises au système SGE à l'aide de la commande qsub, en utilisant des scripts de soumission. Ces scripts sont utilisés comme des environnements pour la définition de la ligne de commande qui lance effectivement la tâche sur le noeud (ou les noeuds) choisi par qsub.
Exemple de script pour tâches séquentielles
Un exemple de script de soumission pour des tâches séquentielles est disponible pour téléchargement: tache_seq.sh. Il faut remarquer que les options de la commande qsub peuvent être fournies à l'intérieur du script:
#! /bin/sh

# Ceci est un tres simple exemple de tache sequentielle

# Options SGE:
# utilise /bin/sh:
#$ -S /bin/sh
#
# nom: 
#$ -N probDiffusion_fera12
#
# envoie un courriel lorsque la tache a fini
#$ -m e
#
# utilise le repertoire courant pour lancer la job
#$ -cwd

/home/mefpp_example/GIREF/bin/probDiffusion.opt /home/mefpp_example/projets/feracheval/fera12

Avec ce script, soumettre la tâche se résume à la ligne de commande:

qsub tache_seq.sh

Exemple de script pour tâches parallèles
Pour lancer des tâches parallèles à l'aide de SGE, il faut savoir, lors de l'écriture d'un script de tâche (qui reste très similaire aux scripts séquentiels), que le nombre de noeuds et la liste des noeuds disponibles est fourni par SGE. Ces deux quantités sont utilisables à l'intérieur d'un script parallèle grâce aux variables $NSLOTS et $TMPDIR générées par SGE lors de l'invocation d'un environnement parallèle de lancement. Le script tache_par.sh donne un exemple simple d'utilisation:
#! /bin/sh

# Ceci est un tres simple exemple de tache sequentielle

# Options SGE:
# utilise /bin/sh:
#$ -S /bin/sh
#
# nom: 
#$ -N MaTacheParallele
#
# envoie un courriel lorsque la tache a fini
#$ -m e
#
# etablit des variables d'environnement
#$ -v PATH,MPI_DIR=/usr/local/mpich_gm
#
# predefinit un environnement parallele
#$ -pe mpich_pair 2-16
#
# utilise le repertoire courant pour lancer la job
#$ -cwd



# recoit dans
#   $NSLOTS
#      le nombre de noeuds qui sont utilises
#   $TMPDIR/machines
#      la liste valide de noeuds a utiliser, pour passer a mpirun 


$MPI_DIR/bin/mpirun.ch_gm -np $NSLOTS -machinefile $TMPDIR/machines \
	/home/mefpp_example/GIREF/bin/probDiffusion.opt /home/mefpp_example/projets/feracheval/fera12


Avec ce script, la tâche de calcul parallèle est soumise avec la commande:

qsub tache_par.sh

Pour changer les valeurs de certains paramètres qui sont précisés dans le script de tâche, il n'est pas nécessaire d'éditer le script puisqu'il suffit de préciser les nouvelles valeurs sur la ligne de commande. Les valeurs des paramètres indiqués sur la ligne de commande ont précédence (voir `man qsub`). Par exemple, pour exécuter la tâche parallèle tache_par.sh sur plus que 16 noeuds, il suffit d'écrire:

qsub -pe mpich_pair 24 tache_par.sh