Unterschied zwischen "Netzwerk-RAM" und "Distributed Shared Memory" (DSM)

1065
Ali

Was ist der Unterschied zwischen "Netzwerk-RAM" und "Distributed Shared Memory" (DSM)? Grundsätzlich weiß ich, dass beide einen gemeinsam genutzten RAM-Speicher zwischen allen Systemen in einem Cluster bereitstellen. Was ist der Unterschied?

1
Ha. Ich dachte, dies könnte leicht für Google geeignet sein, aber als ich googelte, war das erste Ergebnis genau dieser Beitrag, und kein anderes Ergebnis schien es schnell zu beantworten. BenjiWiebe vor 10 Jahren 0
Ja, ich wundere mich, dass es durch eine einzelne Suche gefunden werden konnte, aber es scheint, dass ich lange und ausführliche Artikel lesen sollte! Ich suche nur eine einfache Antwort! Ali vor 10 Jahren 0
Haben Sie Grund zu der Annahme, dass * ein * Unterschied besteht? In der Google-Suche gibt es nur sehr wenige relevante Ergebnisse für "Netzwerk-RAM". Dies lässt mich denken, dass es sich um einen seltenen Begriff handelt, der "verteilter gemeinsamer Speicher" bedeutet. BenjiWiebe vor 10 Jahren 0
Ich bin mir sicher, dass es so ist! Das hat uns unser Dozent im Kurs "Cluster Computing" gefragt! "Warum benutzen wir nicht einen Netzwerk-RAM anstelle von DSM (wie openSHMEM)?", Fragte er! Ich möchte den Unterschied wissen, bevor ich diese Entwurfsentscheidung beantworten kann. Ali vor 10 Jahren 0
[Diese Seite] (http://now.cs.berkeley.edu/Nram/network-ram.html) definiert Netzwerk-RAM als Remote-DRAM-Auslagerungsbereich. Das heißt, wenn ein Knoten die Speicherkapazität nicht auslastet, kann die Verwendung seines DRAMs als Auslagerungsbereich für einen Knoten, der die Speicherkapazität nutzt, zu einer geringeren Latenzzeit führen. (Semi-) Local Flash hätte andere Kompromisse. Da der Swap-Space-Netzwerk-RAM nicht direkt adressierbar ist, sind Blöcke mit Seitengröße möglicherweise besser für nicht RDMA-fähiges Ethernet. (Ich komme vielleicht zurück und erweitere dies zu einer Antwort, aber rechne nicht damit.) Paul A. Clayton vor 10 Jahren 0

1 Antwort auf die Frage

0
Paul A. Clayton

Netzwerk-RAM ist eine entfernte RAM-Disk, um Seiten auszutauschen. Somit unterscheidet sich der Heimatknoten für die Adresse der Speicherseite von dem Knoten, der den RAM-Speicher bereitstellt (wenn die Seite ausgelagert wurde). Die Hauptaufgabe des Netzwerk-RAM besteht darin, die Nutzung der Speicherkapazität auszugleichen, insbesondere wenn sich einige Knoten im Leerlauf befinden. Der Knoten, der den RAM bereitstellt, kann diesen Speicher nicht auf der Anwendungsebene adressieren (zumindest nicht als Speicher, der diesem Speicher bereitstellenden Knoten zugeordnet ist).

Durch die Verwendung der Swap-Schnittstelle wäre die Implementierung von Netzwerk-RAM wesentlich einfacher als die Implementierung eines allgemeineren Migrationsmechanismus. Netzwerk-RAM verwendet auch eine einzelne mittlere Nachrichtengröße, so dass Übertragungen für nicht RDMA-fähige Netzwerke günstiger sind als beispielsweise Übertragungen in Cache-Zeilengröße.

Im verteilten gemeinsam genutzten Speicher ist der Speicher für den einem Knoten zugeordneten Adressraum vollständig in diesem Knoten enthalten, aber jeder Knoten, der Teil des gleichen partitionierten globalen Adressraums ist, kann diesen Speicher adressieren. Der verteilte gemeinsam genutzte Speicher bietet eine Basis für die verteilte Berechnung, indem er anderen Knoten die Möglichkeit bietet, den entfernten Speicher zu adressieren.

Zur Verwirrung kann ein DSM-System Optimierungen durchführen, um den Netzwerkverkehr und die Latenz wie Replikation und Migration von Arbeitsspeicher zu reduzieren.

Netzwerk-RAM ist eine effektive Migration von Arbeitsspeicher basierend auf einer geringen zeitlichen Lokalität zu einem Knoten mit übermäßiger Kapazität und kann für ein DSM-System, ein System zur Weiterleitung von Nachrichten oder sogar für ein Cluster von Knoten implementiert werden, die vollständig unabhängige Workloads ausführen. Der Netzwerk-RAM an sich stellt für andere Knoten keine Möglichkeit zur Verfügung, um aktiven Remote-Speicher zu adressieren, so dass er nicht als Basis für die Verteilung von Berechnungen verwendet werden kann.