Soumettre un job
Pour soumettre un job sur la plateforme de calcul, vous devez disposer d’un compte calcul et vous connecter sur un serveur interactif. Deux commandes permettent la soumission de jobs.
sbatch
permet la soumission d’un script. La syntaxe nécessaire pour la soumission est expliquée dans l’exemple d’un job standard.
srun
permet l’allocation des ressources spécifiées, et exécute un programme ou une application. Quand lancé en ligne de commande,
srun
permet l’exécution de jobs interactifs ou, si utilisé dans un script pour lancer différentes commandes (tâches multiples), il permet l’exécution de tâches parallèles.
Les commandes srun
et sbatch
admettent les mêmes paramètres, mais l’exécution de srun
n’est pas rattachée à un shell interactif, contrairement à sbatch
. La principale conséquence est que les erreurs potentiellement rencontrées lors de l’exécution de srun
ne seront pas remontées et transcrites dans le fichier de sortie (ce qui est le cas pour sbatch
). Afin de le rattacher à un shell, on peut utiliser l’option --pty
(voir l’exemple des jobs interactifs).
Pour surveiller le comportement de votre job, veuillez vous référer aux commandes et outils expliqués dans le chapitre Suivi des jobs.
Attention
En absence d’options indiquant le temps
-t
, le nombre de tâches-n
ou de CPUs par tâche-c
, et la mémoire--mem=
, la soumission du job sera refusée. Les limites supérieurs de ces paramètres seront discutés dans le paragraphe Limites des paramètres obligatoires.
Important
Le groupe de calcul (« account ») par défaut correspond au groupe principal Unix de l’utilisateur.
Pour connaître les limitations relatives à vos accounts, utilisez la commande proposée dans le paragraphe Informations utilisateur.
Pour calculer sur un account différent de celui par défaut, utilisez l’option de soumission
-A | --account=
ou la commande de changement de groupe pour changer votre groupe principal.
Si vous êtes sûr de votre syntaxe, mais que votre job reste en attente, veuillez copier le message du champ
REASON
de l’output de la commande « squeue » dans le ticket à envoyer au support utilisateurs.
Note
Le répertoire de soumission du job définit le répertoire de travail. TMPDIR
peut être utilisé pour le stokage de gros volumes de données, mais il n’est pas le répertoire de travail. On peut forcer Slurm à utiliser cet espace, ou un quelconque espace, comme espace de travail en utilisant l’option -D | --chdir=
. Veuillez vous référer aussi à la page Environnement de calcul.
Principales options de sbatch
Une description succincte des principales options de sbatch
est donnée ci-dessous. Pour l’ensemble des options possibles, veuillez vous référer à l’aide de la commande sbatch -h
.
-n | --ntasks=
spécifie le nombre maximal de processus en parallèles lancés par le job. Par défaut il correspond au nombre de CPU alloués. Si cette option est utilisée avec
srun
alors la tâche sera répétéen
fois.-c | --cpus-per-task=
spécifie le nombre de cœurs par processus. Cette option doit être spécifiée si un processus parent lance des processus enfants en parallèle.
--mem=
spécifie la quantité de mémoire requise (e.g.
--mem=5G
). L’option n’accepte que des valeurs entières (e.g. ne pas déclarer--mem=5.5G
, mais--mem=5500M
).-N | --nodes=
spécifie le nombre de serveurs de calcul requis.
-L | --licenses=
spécifie les types de ressources de stockage et logicielles nécessaires au job.
-p | --partition=
permet la sélection de la partition souhaitée.
-t | --time=
définie une limite sur le temps d’exécution total de la tâche sur la limite maximale de 7 jours. Formats acceptés : « minutes », « minutes:secondes », « heures:minutes:secondes », « jours-heures », « jours-heures:minutes » et « jours-heures:minutes:secondes ».
-A | --account=
spécifie le groupe auquel seront imputées les ressources utilisées.
-a | --array=
permet la définition d’un job tableau, le séparateur est la
,
pour définir une liste ou-
pour définir un intervalle, e.g.array=0,6,16-32
.-J | --job-name=
définit le nom du job.
-D | --chdir
définit le répertoire de travail du script batch avant son exécution. Le chemin peut être spécifié comme chemin complet ou chemin relatif.
-o | --output=
spécifie le nom du fichier pour la sortie standard. Utiliser
%j
dans le nom du fichier pour y inclure le numéro du job et éviter que la sortie soit écrasée par les jobs successifs. Exemple :--output=<nom du job>-%j.out
. Si pas renseigné, le fichier de sortie sera nomméslurm-%j.out
par défaut.-e | --error=
spécifie le nom du fichier de sortie pour les erreurs. Par défaut la sortie standard et la sortie d’erreur sont dirigées sur le même fichier.
--mail-user=
spécifie l’e-mail pour la réception des notification d’intérêt, comme les changements d’état du job. Doit contenir une adresse mail professionnelle valide. Veuillez éviter d’activer des réponses automatiques pendant la période du job.
--mail-type=
spécifie le type d’alerte d’intérêt reçu par e-mail. Si ce champ est renseigné, alors
--mail-user
doit l’être sinon aucun mail ne sera envoyé.