Definition

NUMA

NUMA (non-uniform memory access) est un mode de configuration d'un cluster de microprocesseurs dans un système multiprocesseur avec partage de la mémoire locale, ce qui améliore la performance et la possibilité d'évolution du système.

L'architecture NUMA est utilisée sur les systèmes multiprocesseurs symétriques SMP (symmetric multiprocessing). Un système SMP est de type couplage étroit où tout est partagé et dans lequel les multiples processeurs du même système d'exploitation accèdent à toutes les mémoires sur un bus commun ou via un chemin « interconnecté ». L'inconvénient des SMP est la surcharge du bus ou du chemin de données commun résultant de l'ajout de microprocesseurs, et le goulet d'étranglement des performances qui s'ensuit.

L'architecture NUMA ajoute un niveau intermédiaire de mémoire partagé entre quelques microprocesseurs, évitant ainsi le transit de l'ensemble des données par le bus principal.

On peut imaginer l'architecture NUMA comme un « cluster en boîte ». Le cluster comprend généralement 4 microprocesseurs interconnectés sur un bus local, un bus PCI par exemple, pour partager une mémoire (dite « cache L3 ») sur la même carte mère. Cette unité peut être ajoutée à d'autres unités similaires pour former un système SMP dans lequel tous les clusters sont interconnectés sur un bus SMP commun. Un système de ce type contient généralement de 16 à 256 microprocesseurs. Pour un programme d'application exécuté sur un système SMP, les mémoires de chaque processeur forment une seule et même mémoire.

Lorsqu'un processeur cherche des données à une certaine adresse mémoire, il explore d'abord le cache L1 du microprocesseur lui-même, puis il élargit sa recherche au cache L1 et L2 à proximité, et continue sur un troisième niveau de cache fourni par la configuration NUMA avant de chercher sur la « mémoire distante » à proximité des autres microprocesseurs. Dans l'accès NUMA, chaque cluster est un « nœud » du réseau d'interconnexion. NUMA tient à jour une présentation hiérarchique des données sur tous les nœuds.

Les données sont déplacées sur le bus entre les clusters d'un système NUMA SMP, via la technologie SCI (Scalable Coherent Interface). SCI coordonne la « cohérence du cache », qui est en fait la cohérence entre les noeuds des différents clusters.

Les systèmes SMP et NUMA sont généralement utilisés pour les applications de type Data mining et les systèmes d'aide à la décision, où le traitement est réparti sur un certain nombre de processeurs fonctionnant collectivement comme une base de données commune.

Cette définition a été mise à jour en janvier 2017

Pour approfondir sur Processeurs et composants