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. Trois commandes permettent la soumission de jobs.

sbatch

permet la soumission d’un script. Pour les jobs interactifs, merci de vous référer à la commande srun décrite plus bas.

% sbatch my_script.sh
sbatch: slurm_job_submit: Submission node: cca001
sbatch: slurm_job_submit: Set partition to: htc
sbatch: slurm_job_submit: Info : Partition limited to one node per job.
Submitted batch job 936607

À la soumission, des informations vous sont retournées par la commande : machine de soumission, ici cca001, la partition htc dans laquelle le job sera exécuté, ou encore l’identifiant du job 936607.

srun
permet l’allocation des ressources spécifiées, et exécute un programme ou une application. srun permet aussi l’exécution de tâches parallèles, et est en général utilisé dans un script pour lancer différentes commandes ou tâches en parallèle (jobs parallèles).

Note

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.

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.

--nodes
spécifie le nombre de serveurs de calcul requis
--cpus-per-task
spécifie le nombre de cœurs par processus
--time
spécifie le temps d’exécution maximal, formats possibles : “heures:minutes:seconds”, “jours-heures:minutes:secondes”
--mem
spécifie la quantité de mémoire requise, e.g. 5G
--output
spécifie le nom du fichier pour la sortie standard, slurm-jobid.out par défaut
--error
spécifie le nom du fichier de sortie pour les erreurs
--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
--mail-user
spécifie l’e-mail pour la réception des notification d’intérêt, comme les changements d’état du job
--mail-type
spécifie le type d’alerte d’intérêt reçu par e-mail
--account
spécifie le groupe auquel seront imputées les ressources utilisées
--job-name
définit le nom du job
--partition
permet la sélection de la partition souhaitée

Divers exemples de soumission de jobs sont données dans la partie suivante.

TMPDIR

Par défaut, la variable d’environnement TMPDIR à la valeur /tmp. Pendant l’execution du job, le dossier /tmp est monté dans un dossier privé /scratch/slurm.<jobid>.<taskid>/tmp. Les données temporaires ainsi que le mapping sont supprimés à la fin du job, assurant à la fois protection des données privées et sécurité.

Il est grandement recommandé d’utiliser ce mécanisme pour ses performances étant donné que la partition /scratch a un volume important et est sur un disque local.


Si, à la soumission, vous obtenez le message suivant :

sbatch: error: AssocMaxSubmitJobLimit
sbatch: error: Batch job submission failed: Job violates accounting/QOS policy (job submit limit, user's size and/or time limits)

ou, lors du suivi d’un job en attente, squeue retourne :

% squeue
             JOBID PARTITION     NAME     USER ST       TIME  NODES NODELIST(REASON)
            936551       htc littlene     user PD       0:00      1 (AssocMaxJobsLimit)

alors vous avez probablement été bloqué ! Vérifiez votre boîte e-mail ou contactez le support utilisateurs.