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

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.