Réservations Slurm


Le gestionnaire de ressources Slurm permet de réserver les nœuds d'une partition pour les attribuer à un groupe d'utilisateurs durant une période de temps donnée. Les jobs qui utilisent cette réservation ne peuvent s'exécuter que sur les nœuds définis dans la réservation et aucun autre job ne pourra s'exécuter sur ces nœuds.

1. Réservation en cours

Nom réservation

Utilisateurs

Nbre : liste nœuds

Partition

Heure début

Heure fin

Périodicité

infoair

attjl

14 : n[22-35]

-

31 Mai 2023

{i} Pour connaître la liste des réservations en cours, exécutez la commande Slurm suivante :

summit2:~ # scontrol show res

2. Mise en place d'une réservation

Seuls les administrateurs du cluster sont autorisés à créer (supprimer ou modifier) une réservation Slurm. Par conséquent, pour toute demande de réservation, vous contacterez calcul@aero.obs-mip.fr qui effectuera le nécessaire une fois que les utilisateurs des nœuds inclus dans la réservation auront été informés et auront donné leur accord.

Généralement, une réservation est mise en place pour des raisons de contraintes :

3. Soumettre un job dans une réservation

Les utilisateurs qui bénéficient de droit sur une réservation peuvent soumettre un job sur les nœuds qui la composent en ajoutant simplement l'option --reservation=<name> à la commande sbatch1 qu'ils ont l'habitude de lancer, par exemple pour la réservation tpico :

summit2:~> sbatch --reservation=tpico myjob.sh

ou plus simplement, si le script contient une directive #SBATCH --reservation=tpico (voir SoumissionJob) :

summit2:~> sbatch myjob.sh

avec

summit2:~> cat myjob.sh
#!/bin/sh
#SBATCH --reservation=tpico
...

/!\ Remarques concernant un job soumis avec réservation :

  1. idem pour salloc et srun s'il s'agit d'une soumission interactive (rarement le cas). (1)

4. Soumettre un job en dehors d'une réservation

On suppose ici qu'une réservation périodique a été mise en place sur un sous-ensemble de nœuds d'une partition. Prenons la réservation hebdomadaire tpico par exemple :

summit2:~> scontrol show reserv
ReservationName=tpico StartTime=2012-02-26T07:30:00 EndTime=2012-02-26T12:00:00 Duration=04:30:00
   Nodes=n[103-134] NodeCnt=32 Features=(null) PartitionName=mpib40_MESO Flags=IGNORE_JOBS,DAILY
   Users=chajp Accounts=(null) Licenses=(null) State=INACTIVE

où 32 nœuds sont réservés tous les jours (Flags DAILY) de 7h30 à 12h00 sur la partition mpib40_MESO. Les caractéristiques de la partition mpib40_MESO sont les suivantes :

summit2:~> sinfo -p mpib40_MESO
PARTITION        AVAIL  TIMELIMIT NODES   CPUS(A/I/O/T) STATE  NODELIST
mpib40_MESO      up    10-00:00:0    36     288/0/0/288 alloc  n[101-136]

à savoir 36 nœuds (n[101-136]) avec une limite de temps de 10 jours.

N'importe quel utilisateur pourra lancer un job à partir de 12h00 sur les nœuds libres de la partition mpib40_MESO si la durée du job n'empiète pas sur le début de la réservation prévue le jour suivant à 7h00 du matin. Pour cela, il faut impérativement fournir une durée limite de job convenable avec l'option --time=heure:minutes:secondes. Sans cette option, la limite de 10 jours de la partition mpib40_MESO est utilisée comme durée de job (comportement par défaut) et le job ne pourra pas s'exécuter : il sera placé dans l'état Pending.

A RETENIR :

  • La limite de temps d'un job est par défaut la limite de temps de la partition dans laquelle il est soumis.
  • Si vous constatez qu'un de vos jobs se retrouve dans l'état Pending alors que les nœuds sont libres au moment de la soumission du job, vérifiez que les nœuds de votre job n'appartiennent pas à une réservation avec :

    summit2:~> scontrol show reservation
  • Un job soumis sur des nœuds appartenant à une réservation et dont la durée empiète sur le début de la réservation, ne peut pas s'exécuter : il se retrouve dans l'état Pending (jusqu'à l'annulation de la réservation). Il est impératif d'ajuster convenablement sa durée en ajoutant l'option --time=<time> à la commande sbatch et d'ajuster convenablement sa durée <time>=heures:minutes:secondes pour qu'il se termine avant le début de la réservation et ait une chance de s'exécuter.


Pour plus d'information sur ce sujet, nous vous conseillons de consulter l'aide officielle de Slurm.


CatégorieDocSlurm

WikiSummit2: RéservationSlurm (dernière édition le 2013-10-11 12:14:15 par DidierGazen)