Outils pour utilisateurs

Outils du site


slurm:partitions

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
slurm:partitions [2022/12/21 14:23]
montap01 [Partitions à accès restreint]
slurm:partitions [2024/03/15 15:29] (Version actuelle)
montap01 [Partitions ouvertes à tout chercheur]
Ligne 1: Ligne 1:
 ~~SLIDESHOW theme=yatil level=4~~ ~~SLIDESHOW theme=yatil level=4~~
-====== Partitions de CALI-2 ======+====== Partitions de CALI-2, Feature ======
 Cet article décrit deux des notions fondamentales de l'ordonnanceur de travaux //slurm// :  Cet article décrit deux des notions fondamentales de l'ordonnanceur de travaux //slurm// : 
   * les //partitions//   * les //partitions//
Ligne 22: Ligne 22:
 ==== Partitions ouvertes à tout chercheur ==== ==== Partitions ouvertes à tout chercheur ====
 === Liste ==== === Liste ====
-^Partition ^Noeuds ^Durée max / job ^# noeuds max / job ^# CPU Max actives / User ^# Max Jobs actif (soumis) / User ^Priorité ^ Infiniband ^ Pré-emptible ? ^ +^Partition ^Noeuds ^Durée max / job ^# noeuds max / job ^# CPU Max actives / User ^# Max Jobs actif (soumis) / User ^ Infiniband ^ Pré-emptible ? ^ 
-^rapide    |tous sauf GPU  |      1 H|  -|  32|   2 (10)|  100|  Selon placement | Selon placement | +^rapide    |tous sauf GPU  |      1 H|  -|  32|   2 (10)|  Selon placement | Selon placement | 
-^normal    |tous sauf GPU  |  **2 J**|  -|  96|  - (400)|   50|  Selon placement | Selon placement | +^normal    |tous sauf GPU  |  **2 J**|  -|  120|  - (400)|  Selon placement | Selon placement | 
-^cluster   |tous sauf GPU  |     45 J|  1|  96|  - (400)|    1|  Selon placement | Selon placement | +^cluster   |tous sauf GPU  |     45 J|  1|  120|  - (400)|  Selon placement | Selon placement | 
-^gpu       |Ceux avec GPU  |      2 J|  -|   -|  - (400)|   10|  Non | Selon placement |+^gpu       |Ceux avec GPU  |      2 J|  -|   -|  - (400)|  Non | Selon placement |
  
 Pour ceux qui veulent en savoir plus, les //limites// ci-dessus sont imposées à travers plusieurs mécanismes :  Pour ceux qui veulent en savoir plus, les //limites// ci-dessus sont imposées à travers plusieurs mécanismes : 
Ligne 44: Ligne 44:
   * L'ordonnanceur réalise un meilleur travail de placement et de répartition des ressources avec des jobs de courte durée   * L'ordonnanceur réalise un meilleur travail de placement et de répartition des ressources avec des jobs de courte durée
  
-==== Partitions à accès restreint ====+==== Partitions "privatives" (à accès restreint====
 === Principe === === Principe ===
 Certains noeuds de calcul ont été financés spécifiquement par des laboratoires ou groupes de chercheurs : Certains noeuds de calcul ont été financés spécifiquement par des laboratoires ou groupes de chercheurs :
Ligne 67: Ligne 67:
  
  
 +===== Les "Features" : contrôler le placement des jobs, éviter la pré-emption =====
 +==== Principe ====
 +Chaque //noeud// est marqué avec des //features//. Lorsqu'on lance un job, il est possible de demander son placement sur des noeuds possédant certaines //features//, avec par exemple l'option ''%%--constraint%%''
  
-===== QoS ===== +Sur CALIvous pouvez utiliser les //features// pour plusieurs usages 
-La QoSou //Quality of Service //, est dans slurm une notion orthogonale aux partitions. En pratique, les QoS sont utilisés sur CALI-2 pour : +  * demander un type de processeur 
-  * imposer des limites, qu’on ne peut pas donner au niveau des partitions : nombre de job en cours par utilisateur, nombre de CPU, etc. +  * demander des noeuds **qui ne sont pas soumis à la pré-emption** 
-  * 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//+  * demander des noeuds **qui ont le réseau Infiniband**
  
-==== Choix de la QoS ==== +==== Eviter la pré-emption ==== 
-  * Dans notre configurationune seule QoS est utilisée avec une partition +Nous avons déjà vu que certains noeuds sont à la fois dans des partitions ouvertes à tout le mondeet dans des partitions //privatives//, prioritaires. Si un job est lancé dans la partition prioritaire, slurm va, si nécessaire, "libérerdes ressources via le mécanisme de //pré-emption// (gel des jobs en cours)
-  * 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 ==== +Pour éviter ce mécanisme, appelez la //feature// ''NoPreemption''. Par exemple, ajouter : 
-  * Lister les QoS : ''sacctmgr list qos'' +<file bash> 
-  * Connaître les //QoS// avec lesquelles vous pouvez soumettre des travaux<code+#SBATCH --constraint=NoPreemption 
-sacctmgr list user $(whoami) WithAssoc Format=User%18,Account%20,QoS%100 +</file> 
-</code+ 
-  * Lister les usagers autorisés pour une QoS <code+__Inconvénient__ le job sera limité aux noeuds les plus anciens de CALI, il ne pourra pas s'exécuter sur les processeurs les plus puissants 
-sacctmgr list user  WithAssoc Format=User%18,Account%20,QoS%60 | grep QOS_CHERCHEE + 
-</code>+==== Choisir un type de processeur ==== 
 +Les partitions communes sont hétérogènes. Vous pouvez spécifier sur quel processeur vous voulez exécuter le job.  
 + 
 +Liste des //feature// déclarés (correspondant au nom du processeur) :  
 +  * ''Xeon-E5-2650-v2'' 
 +  * ''Xeon-E5-2630-v4'' 
 +  * ''Xeon-4108'' 
 + 
 +Pour que le job se lance sur des processeurs E5-2630-v4, il faut par exemple ajouter:  
 +<file bash
 +#SBATCH --constraint=Xeon-E5-2630-v4 
 +</file
 + 
 +Consultez la page [[:materiel-cali2]] pour connaître le nombre de noeuds disponibles pour chaque type de processeur. 
 + 
 +==== Réseau Infiniband ==== 
 +Tous les noeuds n'ont pas de réseau Infiniband.  
 + 
 +En pratique, seuls 4 noeuds, dont 3 dédiés GPU, ne sont pas équipés. Si vous voulez être certains que votre job disposera du réseau Infiniband (utile pour les calculs distribués MPI), utilisez la //feature// ''Infiniband'' 
 +<file bash
 +#SBATCH --constraint=Infiniband 
 +</file>
  
-===== Références ===== 
-  * http://slurm.schedmd.com/qos.html 
slurm/partitions.1671629010.txt.gz · Dernière modification: 2022/12/21 14:23 de montap01