Cet article décrit deux des notions fondamentales de l'ordonnanceur de travaux slurm :
Une partition est un groupe de nœuds de calcul du cluster
Les partitions sont utilisées :
Rappel : pour connaître les nœuds de calcul disponibles, consultez la page de description matérielle
Vous trouverez sur CALI :
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) | Selon placement | Selon placement |
normal | tous sauf GPU | 2 J | - | 256 | - (400) | Selon placement | Selon placement |
cluster | tous sauf GPU | 45 J | 1 | 120 | - (400) | Selon placement | Selon placement |
Pour ceux qui veulent en savoir plus, les limites ci-dessus sont imposées à travers plusieurs mécanismes :
Le principe général est le suivant :
rapide
normal
cluster
Les jobs longs (plusieurs jours) sont à éviter autant que possible :
Certains noeuds de calcul ont été financés spécifiquement par des laboratoires ou groupes de chercheurs :
Autrement dit :
Afin d'utiliser une partition privative, un membre du laboratoire doit simplement changer le nom de la partition (--partition
).
Partition | Noeuds | Durée max |
---|---|---|
cluster-e5v4-umr850 | node46-57 (2016) | 30 J |
gpu-umr850 | node58 (2016) | 30 J |
cluster-e5v4-xlim-electro | node59-62 (2016) | 30 J |
gpu-umr1248-gtx1080 | node63-64 (2018) | 30 J |
gpu-ircer-gtx1080 | node65 (2018) | 30 J |
xlim-cc | node66 (2019) | 30 J |
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
Sur CALI, vous pouvez utiliser les features pour plusieurs usages :
Nous avons déjà vu que certains noeuds sont à la fois dans des partitions ouvertes à tout le monde, et dans des partitions privatives, prioritaires. Si un job est lancé dans la partition prioritaire, slurm va, si nécessaire, “libérer” des ressources via le mécanisme de pré-emption (gel des jobs en cours).
Pour éviter ce mécanisme, appelez la feature NoPreemption
. Par exemple, ajouter :
#SBATCH --constraint=NoPreemption
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
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:
#SBATCH --constraint=Xeon-E5-2630-v4
Consultez la page materiel-cali2 pour connaître le nombre de noeuds disponibles pour chaque type de processeur.
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
#SBATCH --constraint=Infiniband