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ée n 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é.