Outils pour utilisateurs

Outils du site


slurm:partitions

Ceci est une ancienne révision du document !


Voir cette page sous forme de diaporama.

Partitions de CALI-2

Cet article décrit deux des notions fondamentales de l'ordonnanceur de travaux slurm :

  • les partitions
  • les features qui vous permettent de contrôler finement le placement de vos travaux

Partitions

Une partition est un groupe de nœuds de calcul du cluster

  • Les partitions peuvent se « chevaucher », un même nœud peut faire partie de plusieurs partitions
  • Un job slurm ne peut s'exécuter que dans une seule partition

Les partitions sont utilisées :

  • pour grouper des ressources de calcul à peu près “identiques”, comme par exemple la partition avec des GPU
  • pour placer des travaux qui ont des contraintes identiques, par exemple en temps d'exécution
  • pour donner des priorités

Rappel : pour connaître les nœuds de calcul disponibles, consultez la page de description matérielle

Partitions ouvertes à tout chercheur

Liste

Partition Noeuds Durée max / job Nb noeuds max / job Priorité Infiniband Pré-emptible ?
rapide génération 2014 1 H N/A 100 Oui Non
normal génération 2014 2 J N/A 50 Oui Oui
cluster génération 2014 45 J 1 1 Oui Oui
cluster-nopreempt génération 2014 30 J 1 20 Oui Non
gpu GPU 2014 2 J N/A 10 S/O Non
cluster-e5v4 génération 2016 2 J N/A 1 Oui Oui (par restart du job)

Autres limites

  • D'autres limites sont établies sur ces partitions à travers les QoS
  • Vous devez donc consulter ci-après la liste des QoS pour en prendre connaissance et bien comprendre la différence entre les partitions

Quelle partition choisir ?

Le principe général est le suivant :

  • pour la mise au point de code, jobs très courts : rapide
  • pour les jobs “normaux” :
    • normal → mais ils doivent durer moins de 2 jours
    • cluster-e5v4 → ils doivent durer moins de 2 jours et ils peuvent être pré-emptés (voir ci-après)
  • pour les jobs “longs” qui ne doivent pas être interrompus (MPI distribués par exemple) : cluster-nopreempt. Mais les ressources disponibles sont limitées
  • pour les jobs “longs” qui peuvent être pré-emptés : cluster. Mais un job ne pourra pas s'étendre sur plus d'un nœud (code séquentiel ou threadé ou MPI en mode shared memory)

Danger des jobs longs

Les jobs longs (plusieurs jours) sont à éviter autant que possible :

  • Les nœuds de calculs ne sont pas “hautement disponibles”, ils peuvent être arrêtés inopinément. Si vous perdez 40 jours de calcul … vous devrez patienter !
  • L'ordonnanceur réalise un meilleur travail de placement et de répartition des ressources avec des jobs de courte durée

Bonus / Malus sur cluster-e5v4

La partition cluster-e5v4 contient des nœuds de calcul acquis par deux laboratoires. Vos jobs peuvent être pré-emptés (par arrêt/relance) pour libérer des ressources pour les laboratoires qui les ont financés.

Afin de vous inciter à l'utiliser, la QoS appliquée dessus possède un facteur d'usage nul, ce qui signifie que le temps CPU consommé sur cette partition ne sera pas comptabilisé lors du calcul de la priorité de vos jobs.

Partitions à accès restreint

Principe

Certains noeuds de calcul ont été financés spécifiquement par des laboratoires :

  • ces parties “privatives” peuvent être utilisées par tout le monde
  • mais le laboratoire propriétaire sera hautement prioritaire lorsqu'il en aura besoin

Pour répondre à ce besoin, les noeuds sont regroupés dans des partitions de très haute priorité, utilisables uniquement par le laboratoire propriétaire.

Utilisation

Afin d'utiliser une partition privative, un membre du laboratoire doit simplement changer le nom de la partition (--partition).

Il est à noter qu'une QoS différente sera automatiquement sélectionnée :

  • pour ne pas pénaliser la priorité de l'équipe de recherche sur le reste du cluster
  • comme mesure de contrôle d'accès à la ressource
  • avec un facteur d'usage nul (ne compte pas dans le calcul de priorité pour la partie commune du cluster)

Liste

Partition Noeuds Durée max Priorité
cluster-e5v4-umr850 node46-57 (2016) 30 J 100
gpu-umr850 node58 (2016) 30 J 100
cluster-e5v4-xlim-electro node59-62 (2016) 30 J 100
gpu-umr1248-gtx1080 node63-64 (2018) 30 J 100
gpu-ircer-gtx1080 node65 (2018) 30 J 100
xlim-cc node66 (2019) 30 J 100

QoS

La QoS, ou Quality of Service , est dans slurm une notion orthogonale aux partitions. En pratique, les QoS sont utilisés sur CALI-2 pour :

  • imposer des limites, qu’on ne peut pas donner au niveau des partitions : nombre de job en cours par utilisateur, nombre de CPU, etc.
  • ou pour contrôler l'accès aux partitions privatives tout en ne comptabilisant pas le temps d'exécution sur ces partitions pour le calcul général du fair-share

Choix de la QoS

  • Dans notre configuration, une seule QoS est utilisée avec une partition
  • Par simplicité, elle porte le même nom que la partition associée (sauf pour les “gold”)
  • La QoS est automatiquement sélectionnée par rapport à la partition choisie, vous n'avez donc pas besoin de la spécifier
  • La liste ci-après vous permet de connaître les limites imposées par les QoS associées aux partitions

Liste

QoS # CPU max # Noeuds max # CPU max / util. # job max actif / utilisateur # job max en file / utilisateur Facteur d'usage
rapide 32 2 10 1.0
normal 96 1.0
cluster 96 1.0
cluster-nopreempt 88 14 1.0
cluster-e5v4 0.0
gold-geist-lcsn 0.0
gold-geist-genolim 0.0
gold-geist-umr850 0.0
gold-ipam-spcts 0.0

S'informer sur les QoS

  • Lister les QoS : sacctmgr list qos
  • Connaître les QoS avec lesquelles vous pouvez soumettre des travaux
    sacctmgr list user $(whoami) WithAssoc Format=User%18,Account%20,QoS%100
  • Lister les usagers autorisés pour une QoS
    sacctmgr list user  WithAssoc Format=User%18,Account%20,QoS%60 | grep QOS_CHERCHEE

Références

slurm/partitions.1671627382.txt.gz · Dernière modification: 2022/12/21 13:56 de montap01