NUMA

Non-Uniform Memory Access oder kurz NUMA ist Computer-Speicher-Architektur für Multiprozessorsysteme, bei denen die Zugriffszeiten auf den Speicher vom Ort des Speichers abhängen. Ein Prozessor kann auf seinen eigenen, als lokal zugewiesenen Speicher schneller zugreifen als als auf den von anderen Prozessoren im gleichen System verwalteten Speicher.

NUMA-Architekturen sind der logisch nächste Schritt zur Erhöhung der Skalierbarkeit von SMP-Architekturen.

Cache-Kohärenz und NUMA

Fast alle Rechnerarchitekturen benutzen eine kleine Menge sehr schnellen Speichers, der als Cache bezeichnet wird, um bei Speicherzugriffen Lokalitätseigenschaften auszunutzen. Bei Verwendung von NUMA sorgt das beibehalten der Cache-Kohärenz über den verteilten Speicher für zusätzlichen Overhead. Als Beispiel stelle man sich vor, dass ein Prozessor sich Daten aus dem Speicher eines anderen Prozessors holt, damit Berechnungen anstellt und die Ergebnisse in seinen lokalen Cache schreibt. Der Cache des Prozessors, von dem die Daten stammen (und vielleicht auch noch weitere Caches im System) müssen dann synchronisiert werden.

Nicht Cache-Kohärente NUMA-Systeme sind zwar einfacher zu entwickeln und zu bauen, aber mit dem Standard-Programmiermodell von von Neumann nur schwer programmierbar. Daher besitzen alle derzeit im Einsatz befindlichen NUMA-Systeme spezielle Hardware, um die Cache-Kohärenz zu halten, und werden deshalb auch als "cache-coherent NUMA" (ccNUMA) bezeichnet.

Dies wird meistens durch Inter-Prozessor-Kommunikation zwischen den Cache-Controllern erreicht, die so für konsistente Speicherinhalte sorgen, falls die gleiche Speicherstelle in mehr als einem Cache gespeichert ist. ccNUMA leidet unter schlechter Performance, wenn mehrere Prozessoren schnell nacheinander auf die gleiche Speicherstelle zugreifen wollen. Daher versucht ein Betriebssystem mit NUMA-Unterstützung die Häufigkeit solcher Zugriffe zu minimieren, indem Prozessoren und Speicher auf NUMA-freundliche Art und Weise alloziert werden.

NUMA vs. Cluster-Computing

NUMA kann als sehr eng gekuppelte Form von Cluster-Computing gesehen werden. Das Hinzufügen von Paging für virtuellen Speicher zu einer Cluster-Architektur macht es möglich, NUMA in Software zu implementieren, wo keine NUMA-Hardware existiert. Die Latenzzeiten von softwarebasiertem NUMA sind jedoch um ein Mehrfaches größer als mit Hardware-NUMA.

Weblinks


Der Original-Artikel aus der englischen Wikipedia enthält Material von FOLDOC, das hier und in der engl. Wikipedia unter einer Public-Domain-Lizenz verwendet wird.




Websites: Tagoror | Guajara | Tacoronte Guia | Todo Gomera | Deranet | Radioaficionados | Cinebso | Mi Buscador

Enciclopedia On Line: GNU FDL.