Ceci est une ancienne révision du document !
Affinités des processus sous Slurm
Cet article explique brièvement la configuration adoptée concernant l'affinité des processus sous slurm, c'est à dire leur liaison avec les CPU des nœuds de calcul.
Affinité
Restriction des CPU
Le problème
Sur notre cluster, les nœuds de calcul fonctionnent par défaut en mode partagé : plusieurs jobs peuvent s'exécuter en même temps sur le même nœud
Dans un job slurm, vous demandez une réservation, par exemple pour 4 CPU
Mais vous avez la liberté de lancer plus de 4 processus simultanés, ou un processus avec plus de 4 threads : Slurm ne contrôle pas cela
Il y a donc un risque de surcharge du nœud qui va impacter les autres usagers
La solution
Slurm dispose de plusieurs mécanismes permettant de circonscrire les ressources utilisables
Nous utilisons le plus simple des deux via le paramètre TaskPlugin=task/affinity
Slurm positionnera automatiquement l'affinité des processus pour limiter le nombre de CPU utilisables à la valeur demandée dans --cpus-per-task
Cache Miss
Références