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é
L' https://en.wikipedia.org/?title=Processor_affinity d'un processus permet de le lier à un ou plusieurs cœurs sur une machine multi-cœur (architecture SMP)
Le processus sera ainsi cantonné à un ensemble donné de cœurs pour son exécution. Il ne pourra pas être exécuté par Linux sur les autres cœurs du serveur.
Intérêt sur CALI
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
Références