Outils pour utilisateurs

Outils du site


slurm:affinite

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:affinite [2015/06/17 19:27]
montap01 [Intérêt sur CALI]
slurm:affinite [2015/06/17 19:38] (Version actuelle)
montap01 [Affinité]
Ligne 2: Ligne 2:
 ====== Affinités des processus sous Slurm ====== ====== 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.+Cet article explique 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é ===== ===== Affinité =====
-  * L'[[https://en.wikipedia.org/?title=Processor_affinity  | affinité ]] d'un processus permet de le lier à un ou plusieurs cœurs sur une machine multi-cœur (architecture SMP)+  * L'[[https://en.wikipedia.org/?title=Processor_affinity  | affinité ]] d'un processus permet de le lier à un ou plusieurs cœurs sur une machine multi-cœur 
   * 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   * 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
 +  * Deux raisons ont conduits à activer automatiquement l'affinité sous slurm, que nous expliquons ci-après
  
 ===== Restriction des CPU ===== ===== Restriction des CPU =====
Ligne 19: Ligne 20:
   * Nous utilisons le plus simple des deux via le paramètre ''TaskPlugin=task/affinity''   * 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%%''   * Slurm positionnera automatiquement l'affinité des processus pour limiter le nombre de CPU utilisables à la valeur demandée dans ''%%--cpus-per-task%%''
 +  * Un job mal construit qui demande 4 CPU mais lance par exemple 6 thread n'impactera pas les autres usagers, ses 6 threads ne pourront s'exécuter que sur les 4 cœurs alloués par slurm 
 +===== Accès mémoires ===== 
 +  * Sur une architecture SMP, plusieurs phénomènes peuvent dégrader **considérablement** les performances 
 +  * Sans rentrer dans les détails, en particulier le //[[https://en.wikipedia.org/wiki/CPU_cache | cache miss]]// sera accentué si un processus peut s'exécuter alternativement sur des processeurs différents 
 +  * Il est donc conseillé pour optimiser la performance d'un programme de le lier à un cœur 
 +  * Le gain de performance peut atteindre 40%
 ===== Références ===== ===== Références =====
 Documentation slurm : Documentation slurm :
   * [[http://www.schedmd.com/slurmdocs/cpu_management.html | CPU Management User and Administrator Guide]]   * [[http://www.schedmd.com/slurmdocs/cpu_management.html | CPU Management User and Administrator Guide]]
slurm/affinite.1434562036.txt.gz · Dernière modification: 2015/06/17 19:27 de montap01