Gestion des jobs

Soumettre son premier job

sbatch

La manière la plus standard pour soumettre un job avec SLURM consiste à utiliser sbatch (équivalent de qsub dans SGE).

Voici un petit exemple qui ne fait rien pendant 3 secondes puis se contente d'afficher le nom des noeuds sur lesquels le job tourne :

#!/bin/bash
#SBATCH --job-name=test_basic
#SBATCH --output=test_basic.out
#SBATCH --error=test_basic.err
#SBATCH --time=24:00:00
#SBATCH --mem-per-cpu=1G
#SBATCH --partition=small
#SBATCH --mail-type=END
#SBATCH --mail-user=<prenom.nom@umontpellier.fr>
###############

sleep 3
hostname

On écrit ça dans un fichier test_basic.sbatch (par exemple avec vim, cat, ou simplement nano [*]) et on le soumet ainsi :

[*] Si vous copiez un fichier depuis Windows sur le cluster, pensez à utiliser la commande dos2unix pour convertir les retours à la ligne. mac2unix permet de faire la même chose depuis un Mac.

sbatch test_basic.sbatch

Le retour doit vous afficher un nombre; c'est votre JOB_ID.

Si on regarde en détail le fichier de soumission, on lui a indiqué :

  • un nom de job,
  • un nom de fichier de sortie standard (test_basic.out),
  • un nom de fichier de sortie d'erreur (test_basic.err),
  • une limite de temps de 24h,
  • une mémoire par coeur de 1Go,
  • une exécution sur la partition small,
  • l'envoi d'un mail quand le job est terminé,
  • notre mail (à remplacer par le votre dans ce cas).

Suivi de 2 commandes à exécuter sur les 2 noeuds.

Le paramètre --mem-per-cpu est très important car il permet au Job Scheduler de déterminer combien de place en mémoire il reste sur un noeud.

L'envoi de mail est à proscrire dans le cadre de tableaux de jobs très nombreux.

Plus d'informations : man sbatch

Job Interactif avec srun

Vous pouvez soumettre un job de type bash pour vous connecter de manière interactive vers un noeud. Ainsi, vous pouvez aisément tester votre programme avant de le lancer plus proprement avec la méthode précédente.

# pour ouvrir un shell pendant 1h sur un noeud
srun --time=01:00:00 --pty bash -i
# pour spécifier une queue/partition
srun --time=01:00:00 -p long --pty bash -i

Plus d'exemples sur les jobs interactifs ici.

Plus d'informations : man srun

Info Vous pouvez désormais passer à la section de gestion des jobs

results matching ""

    No results matching ""