NoRMA
# NoRMA

No Remote Memory Access (kurz: NoRMA) ist eine Computer-Speicher-Architektur für Multiprozessorsysteme.

## Hintergrund

In NoRMA-Systemen erhält jeder Prozessor nur Zugriff auf seinen eigenen Speicher und kann auch nur diesen direkt ansprechen. Zugriffe auf entfernte Speichermodule sind nur mittelbar möglich, indem Nachrichten über das Verbindungsnetzwerk an andere Prozessoren gesendet werden, die ihrerseits ggf. die gewünschten Daten in einer Antwortnachricht liefern.
Bei einer NoRMA-Architektur ist kein globaler Adressraum vorhanden, noch ist es Prozessoren erlaubt, global auf Speicher zuzugreifen. Betrachtet man den gesamten Speicher der Konfiguration, so ist er statisch partitioniert. Etwaige Caches der Prozessoren werden wie bei NUMA von der Hardware nicht kohärent gehalten.

## Vorteil

Der Vorteil des NoRMA-Modells ist die Möglichkeit, extrem große Konfigurationen konstruieren zu können, die durch Verlagerung der Probleme auf die Nutzer der Konfiguration erreicht wird. Programme für NoRMA-Architekturen müssen selbst Daten partionieren, Caching in lokalen Speichermodulen implementieren, Kohärenz der Softwarecaches gewährleisten, um das gewünschte Konsistenzmodell durchzusetzen, Identifikatoren transformieren und entfernte Zugriffe durch den Austausch von Nachrichten – message passing – realisieren. Das Programmiermodell einer NoRMA-Architektur ist daher äußerst kompliziert.

## Heutige Verwendung

Während die meisten der frühen Computercluster einfache Einzelprozessor-NORMA Systeme waren, sind die heutigen großen Computercluster typischerweise Hybrid-Systeme, sie verwenden meist NUMA-Knoten.