Qu'est-ce que l'accès mémoire non uniforme (NUMA) ?

Last Updated: 2020-12-09
4.6
(5)
Sommaire:NUMA, abréviation de Non-Unified Memory Access, est une conception de mémoire informatique pour le multitraitement. Regardez ici pour une introduction complète à NUMA.

Définition

NUMA est une architecture multitraitement où la mémoire est divisée en stockage étroit et distant, et le temps d'accès à la mémoire dépend de l'emplacement de la mémoire par rapport au processeur.

Sous NUMA, les processeurs accèdent à leur mémoire locale plus rapidement que la mémoire non locale. Les avantages de NUMA sont limités à des charges de travail spécifiques, en particulier sur les serveurs où les données sont généralement fortement associées à des tâches ou à des utilisateurs spécifiques.

Les systèmes d'accès mémoire non uniformes sont des plates-formes de serveur avancées avec plusieurs bus système. Ces plates-formes peuvent utiliser plusieurs processeurs sur une seule carte et tous les processeurs ont accès à toute la mémoire de la carte mère.

Les architectures NUMA suivent logiquement dans la mise à l'échelle une architecture SMP (Symmetric Multiprocessing). Par rapport à SMP, l'architecture NUMA s'adapte à un plus grand nombre de processeurs.

Concept de base

Les processeurs modernes fonctionnent beaucoup plus rapidement que la mémoire principale qu'ils utilisent. Aux premiers stades de l'informatique et du traitement des données, le processeur fonctionne généralement plus lentement que sa mémoire. Limiter le nombre d'accès mémoire est la clé pour extraire des performances élevées des ordinateurs modernes.

Cependant, la forte augmentation de la taille du système d'exploitation et des applications s'exécutant sur le système d'exploitation dépasse souvent ces améliorations de traitement du cache. Un système multiprocesseur sans NUMA aggrave encore le problème.

NUMA essaie de résoudre ce problème en fournissant une mémoire distincte pour chaque processeur, évitant ainsi un impact sur les performances lorsque plusieurs processeurs résolvent la même mémoire.

En outre, les systèmes NUMA incluent d'autres matériels ou logiciels pour déplacer les données entre les banques de mémoire. Cela réduit la vitesse des processeurs connectés à ces banques. Par conséquent, l'augmentation globale de la vitesse due à NUMA dépend principalement de la nature de la tâche en cours.

Cache NUMA cohérent (ccNUMA)

Presque toutes les architectures CPU tirent parti des emplacements de référence dans l'accès mémoire avec une petite quantité de mémoire non partagée à grande vitesse appelée mise en cache.

ccNUMA adopte une communication interprocesseur entre les contrôleurs de cache pour maintenir des images mémoire cohérentes lorsque plusieurs caches stockent le même emplacement mémoire. Par conséquent, ccNUMA fonctionne mal lorsque plusieurs processeurs tentent d'accéder rapidement et en continu à la même zone de mémoire.

La prise en charge de NUMA dans le système d'exploitation tente de réduire la fréquence d'un tel accès en allouant des processeurs et de la mémoire de manière conviviale à NUMA et en empêchant les algorithmes de planification et de verrouillage nécessaires pour rendre l'accès NUMA hostile.

Assistance logicielle

Étant donné que NUMA influence grandement les performances d'accès à la mémoire, une certaine optimisation logicielle est nécessaire pour permettre aux threads et aux processus de planification d'accéder à leurs données de mémoire.

  • Silicon Graphics IRIX prend en charge l'architecture ccNUMA sur 1240 CPU et Origin Server Series.
  • Microsoft Windows 7, ainsi que Windows Server 2008 R2, ont augmenté la prise en charge de plus de 64 cœurs logiques de l'architecture NUMA.
  • Java 7 ajoute la prise en charge des répartiteurs de mémoire et des récupérateurs de mémoire compatibles NUMA.
  • La version 3.13 du noyau Linux a introduit plusieurs politiques pour placer les processus près de la mémoire et gérer des situations telles que l'utilisation de grandes pages transparentes ou le partage de pages mémoire entre les processus. Les nouveaux paramètres sysctl permettent d'activer ou de désactiver l'équilibrage NUMA et de configurer divers paramètres d'équilibrage de la mémoire NUMA.
  • OpenSolaris utilise des lgroups pour modéliser l'architecture NUMA.
  • FreeBSD ajoute la pertinence initiale de NUMA et la configuration de la politique à la version 11.0

En bout de ligne !

En bref, après avoir parcouru cette page, vous aurez une meilleure compréhension de la définition, du concept de base et du mode de fonctionnement de l'accès mémoire non unifié. Vous saurez également que NUMA affecte les performances d'accès à la mémoire, de sorte que certains logiciels optimisent pour le prendre en charge.

 

Cette publication vous a-t-elle été utile ?

Cliquez sur une étoile pour la noter !

Note moyenne4.6/ 5. Décompte des voix :5

Aucun vote pour l'instant ! Soyez le premier à noter ce post.

Article précédent

Comment restaurer la dernière icône de Google Chrome pour Mac vers celle d'origine ? Résumé : NUMA, abréviation de Non-Unified Memory Access, est une conception de mémoire informatique pour le multitraitement. Regardez ici pour une introduction complète...

Article suivant

Comment récupérer des vidéos supprimées sur Mac ? Résumé : NUMA, abréviation de Non-Unified Memory Access, est une conception de mémoire informatique pour le multitraitement. Regardez ici pour une introduction complète...

À propos de la récupération de données Bitwar

3 étapes pour récupérer plus de 500 types de documents, photos, vidéos, audios, fichiers d'archive supprimés, formatés ou perdus à partir de divers scénarios de perte de données.

Apprendre encore plus

Articles chauds

    Articles Liés