Core Concepts
Entwicklung eines standardisierten Emulationsrahmenwerks und einer Programmierschnittstelle für CXL-basierte disaggregierte Speicheranwendungen.
Abstract
Das Papier stellt emucxl, ein Emulationsrahmenwerk für CXL-basierte disaggregierte Speicheranwendungen, vor. Emucxl besteht aus zwei Hauptkomponenten:
Eine virtuelle Appliance, die eine NUMA-basierte Emulation der CXL-Funktionalität für disaggregierte Speicher bereitstellt. Die Appliance basiert auf Ideen aus der POND-Arbeit und emuliert zwei virtuelle NUMA-Knoten, von denen einer CPU und lokalen Speicher und der andere nur Speicher ohne CPU enthält.
Eine Programmierschnittstelle (API) in Benutzerraum, die eine standardisierte Schnittstelle für den Zugriff und die Nutzung des emulierenden CXL-Speichers bietet. Die API umfasst Funktionen zum Allozieren, Freigeben, Migrieren und Überwachen von Speicher in lokalem und entferntem Speicher.
Die Autoren demonstrieren die Verwendung von emucxl in zwei Anwendungsfällen:
Direkte Nutzung der emucxl-API durch eine Anwendung zur Verwaltung einer Warteschlange.
Nutzung der emucxl-API durch eine Middleware-Komponente, die eine Key-Value-Datenstruktur mit Unterstützung für disaggregierten Speicher implementiert.
Die Evaluation zeigt, dass die Nutzung von entferntem Speicher im Vergleich zu lokalem Speicher eine leicht höhere Latenz aufweist, was den erwarteten NUMA-ähnlichen Leistungsmerkmalen des CXL-Hardware-Poolings entspricht.
Insgesamt bietet emucxl eine standardisierte Plattform für die Entwicklung und Evaluierung von CXL-basierten Anwendungen mit disaggregiertem Speicher und reduziert den Aufwand für Entwickler, eigene Emulationsumgebungen aufzubauen.
Stats
Die durchschnittliche Ausführungszeit für 15.000 Enqueue-Vorgänge beträgt 502,98 ms für lokalen Speicher und 567,21 ms für entfernten Speicher.
Die durchschnittliche Ausführungszeit für 15.000 Dequeue-Vorgänge beträgt 417,69 ms für lokalen Speicher und 500,40 ms für entfernten Speicher.
Quotes
Keine relevanten Zitate identifiziert.