Was bedeutet NUMA (Non-Uniform Memory Access) und was kann es leisten? Wenn Sie sich für NUMA interessieren und sich darüber informieren möchten, dann sollten Sie diesen Artikel aufmerksam lesen. MiniTool hat viele Informationen darüber zusammengetragen.

Was ist NUMA?

Was ist NUMA? Es ist die Abkürzung für Non-Uniform Memory Access. Es ist die Computer-Arbeitsspeicher-Architektur für Multiprozessorsysteme. Als Computerspeicherdesign kann NUMA einen Cluster von Mikroprozessoren in einem Multiprozessorsystem konfigurieren und so die Leistung verbessern und die Systemmöglichkeiten erweitern.

Unter NUMA kann ein Prozessor auf seinen eigenen lokalen Speicher schneller zugreifen als auf nicht-lokalen Speicher (lokaler Speicher eines anderen Prozessors oder von Prozessoren gemeinsam genutzter Speicher). Die Vorteile von NUMA beschränken sich auf bestimmte Arbeitslasten, insbesondere auf Servern, bei denen die Daten normalerweise eng mit bestimmten Aufgaben oder Anwendern verknüpft sind.

Tipp:
Wenn Sie mehr über Arbeitsspeicher wissen wollen, empfehlen wir Ihnen, sich auf der MiniTool Webseite über die zahlreichen Arten von Arbeitsspeicher zu informieren.

NUMA wird in symmetrischen Multiprozessorsystemen (SMP) verwendet. Das SMP-System ist ein „eng gekoppeltes“, „alles gemeinsam nutzendes“ System, bei dem mehrere Prozessoren, die unter einem einzigen Betriebssystem arbeiten, über einen gemeinsamen Bus oder „Verbindungspfad“ auf den Speicher des jeweils anderen zugreifen.

Generell besteht die Einschränkung von SMP darin, dass der gemeinsame Bus oder Datenpfad überlastet wird und zu einem Leistungsengpass wird, wenn ein weiterer Mikroprozessor hinzukommt. NUMA fügt einige Zwischenebenen des zwischen den Mikroprozessoren gemeinsam genutzten Speichers hinzu, so dass nicht alle Datenzugriffe über den Hauptbus erfolgen müssen.

NUMA kann man sich als einen „Cluster in einer Box“ vorstellen. Ein Cluster besteht normalerweise aus vier Mikroprozessoren (z.B. vier Pentium-Mikroprozessoren), die über einen lokalen Bus (beispielsweise den Peripheral Component Interconnect Bus) mit einem gemeinsam genutzten Speicher (dem so genannten „L3-Cache“) auf einer einzigen Hauptplatine (die auch als Karte bezeichnet werden kann) verbunden sind.

Das könnte Sie interessieren: ATX VS EATX Motherboard: Was ist der Unterschied zwischen ihnen?

Diese Einheit kann zu ähnlichen Einheiten hinzugefügt werden, um ein symmetrisches Multiprocessing-System zu bilden, bei dem ein gemeinsamer SMP-Bus alle Cluster miteinander verbindet. Solche Systeme enthalten normalerweise 16 bis 256 Mikroprozessoren. Für Anwendungen, die in einem SMP-System laufen, sehen alle Einzelprozessorspeicher wie ein einziger Speicher aus.

Wenn der Prozessor an einer bestimmten Speicheradresse nach Daten sucht, sucht er zuerst im L1-Cache des Mikroprozessors selbst, dann in den größeren L1- und L2-Cache-Chips in der Nähe und dann in der dritten Cache-Ebene, die von der NUMA-Konfiguration bereitgestellt wird, bevor er Daten im „entfernten Speicher“ in der Nähe anderer Mikroprozessoren sucht. NUMA behandelt jeden Cluster als einen „Knoten“ in einem zusammenhängenden Netzwerk. NUMA verwaltet eine hierarchische Ansicht der Daten auf allen Knoten.

Mithilfe der SCI-Technologie (Scalable Coherent Interface) bewegen sich die Daten über den Bus zwischen den Clustern des NUMA SMP-Systems. SCI koordiniert die sogenannte „Cache-Kohärenz“ oder die Kohärenz zwischen den Knoten mehrerer Cluster.

SMP- und NUMA-Systeme werden häufig in Anwendungen wie Data-Mining und Entscheidungsunterstützungssystemen eingesetzt. Bei diesen Anwendungen kann die Verarbeitung auf mehrere Prozessoren aufgeteilt werden, die zusammen an einer gemeinsamen Datenbank arbeiten. Sequent, Data General und NCR gehören zu den Unternehmen, die NUMA SMP-Systeme herstellen.

Die erste kommerzielle Implementierung eines NUMA-basierten Unix-Systems war übrigens die Symmetrical Multi Processing XPS-100 Server-Serie, die von Dan Gielan von der VAST Corporation für Honeywell Information Systems in Italien entwickelt wurde.

Software-Unterstützung von NUMA

Da NUMA die Speicherzugriffsleistung stark beeinflusst, sind bestimmte Software-Optimierungen erforderlich, damit die Planung von Threads und Prozessen an ihre Speicherdaten herankommen kann.

  • Silicon Graphics IRIX unterstützt die ccNUMA-Architektur auf der 1240 CPU mit der Origin-Server-Serie.
  • Microsoft Windows 7 und Windows Server 2008 R2 haben Unterstützung für die NUMA-Architektur auf 64 logischen Kernen hinzugefügt.
  • Java 7 hat Unterstützung für NUMA-kompatible Speicherzuweisung und Garbage Collector (englisch für Müllabfuhr, auch automatische Speicherbereinigung oder Freispeichersammlung genannt) hinzugefügt.
  • Die Linux-Kernel-Version 2.5 enthielt bereits grundlegende NUMA-Unterstützung, die in späteren Kernel-Versionen weiter verbessert wurde.
  • Mit der Version 3.8 des Linux-Kernels wurde eine neue NUMA-Basis eingeführt, welche die Entwicklung effektiverer NUMA-Strategien in späteren Kernel-Versionen ermöglichte.
  • Version 3.13 des Linux-Kernels führte eine Reihe von Strategien ein, die darauf abzielen, Prozesse in der Nähe ihres Speichers zu platzieren und Situationen wie die gemeinsame Nutzung von Speicherseiten durch Prozesse oder die Verwendung transparenter riesiger Seiten zu handhaben. Die neuen sysctl-Einstellungen ermöglichen die Aktivierung oder Deaktivierung von NUMA-Balancing sowie die Konfiguration verschiedener NUMA-Speicherausgleichsparameter.
  • OpenSolaris verwendet lgroup, um die NUMA-Architektur zu modellieren.
  • FreeBSD hat in Version 11.0 die anfängliche NUMA-Affinität und Richtlinienkonfiguration hinzugefügt.

Schlussworte

Zusammenfassend lässt sich sagen, dass Sie nach dem Lesen dieses Artikels die NUMA-Definition und Arbeitsweise kennengelernt haben. Außerdem wissen Sie nun, dass NUMA die Speicherzugriffsleistung beeinträchtigen kann, so dass bestimmte Software optimiert, um NUMA zu unterstützen.

  • linkedin