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.

La soumission d’un job en ligne de commande se fait avec la syntaxe suivante :

% sbatch -t 0-00:30 -c 1 --mem 2G job.sh
sbatch: INFO: Account: ccin2p3
sbatch: INFO: Submission node: cca013
sbatch: INFO: Partition set to: htc
sbatch: INFO: Partition limited to one node per job.
sbatch: INFO: Time limit set to: 0-00:30 (30 minutes)
Submitted batch job 10280305
-t <j-hh:mm>

spécifie la limite de temps evaluée. Tous les formats acceptés sont décrits dans le paragraphe Principales options de sbatch

-c <nombre>

spécifie le nombre de CPUs par tâche demandée (par défaut un job a une seule tâche).

--mem <nombre>

spécifie la quantité de mémoire demandée.

job.sh

votre script de tâche exécutable.

À la soumission, des informations vous sont retournées dans la sortie standard : le groupe de calcul (Account, ici ccin2p3), le nœud de soumission (ici cca013), la partition htc (par défaut) dans laquelle le job sera exécuté, ou encore l’identifiant du job contenu dans la variable d’environnement SLURM_JOB_ID (ici 10280305).

Si l’on souhaite accèder à une ressource nécessitant une déclaration, on utilisera l’option -L (ici, par exemple, pour déclarer l’utilisation de sps et matlab) :

% sbatch -t 0-00:30 -c 4 --mem 2G -L sps,matlab job.sh

Attention

  • En absence d’options indiquant le temps -t, le nombre 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.

  • Contrôlez que votre demande de ressources ne dépasse pas les limites matérielles des nœuds de la plateforme de calcul.

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.

Important

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.

-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 ».

-c | --cpus-per-task=

spécifie le nombre de cœurs par tâche. Par défaut un job a une seule tâche.

--mem=

spécifie la quantité de mémoire requise (e.g. --mem=5G). L’option n’accepte que des valeurs entières et non nulles (e.g. ne pas déclarer --mem=5.5G, mais --mem=5500M).

-L | --licenses=

spécifie les types de ressources de stockage et logicielles nécessaires au job.

-A | --account=

spécifie le groupe de calcul 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.

-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 messages d’erreur. Par défaut la sortie standard et la sortie d’erreur sont dirigées sur le même fichier.

-p | --partition=

permet la sélection de la partition souhaitée.

-N | --nodes=

spécifie le nombre de serveurs de calcul requis.

-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.

-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.

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