Architecture NUMA : affinité mémoire
Article mis en ligne le 15 mai 2017
dernière modification le 17 mai 2017
logo imprimer

Architecture des nœuds de calcul

Le supercalculateur Eos est constitué de 612 nœuds bi-sockets.

Chaque socket est constitué d’un processeur 10-cores relié à une mémoire RAM de 32 GB. La réunion de deux sockets au sein d’un nœud forme ce que l’on appelle une architecture de type NUMA (Non-Uniform Memory Access).

Du point du vue applicatif, les ressources sont unifiées : un programme aura accès à la totalité de la mémoire du nœud, c’est à dire 2x32=64 GB.
Cependant, la façon dont un processus accédera aux données stockées en mémoire pourra différer selon les cas de figure.

Accès mémoire - NUMA

Si, par exemple, un processus qui s’exécute sur le CPU-1 a besoin d’une donnée stockée sur la RAM du Socket 1, alors cet accès sera direct et la donnée transitera au travers du bus qui relie le CPU-1 à sa mémoire vive.

Si le processus qui s’exécute sur CPU-1 a besoin d’une donnée stockée sur la RAM du Socket 0, alors cet accès se fera par l’intermédiaire du CPU-0 et ne sera donc pas direct.

On parle alors d’architecture NUMA car le temps d’accès à la donnée en mémoire dépend de sa localisation par rapport au processus d’exécution (plus la donnée est proche, plus l’accès est rapide).

Remarque : selon les applications, le sur-coût engendré par un tel accès NUMA n’est pas nécessairement visible et peut n’avoir qu’une infime incidence sur les performances réelles.



Site réalisé sous SPIP
avec le squelette ESCAL-V3
Version : 3.86.44
Hébergeur : INP Toulouse