Software Distributed Shared Memory Vortrag im Rahmen des Seminars Ausgewählte Themen in Hardwareentwurf und Optik Sarah Neuwirth, 05. Juli 2011
Agenda 1. Motivation 2. Was ist Software Distributed Shared Memory? 3. Single System Images 4. Open Source Lösungen 5. Kommerzielle Lösungen 6. Beispiel: vNUMA 7. Fazit 8. Literaturverzeichnis 2Sarah Neuwirth - Software Distributed Shared Memory
Motivation Sarah Neuwirth - Software Distributed Shared Memory3 Transparentes Nutzen von verteilten Ressourcen Verteilter Speicher soll als Ganzes betrachtet und genutzt werden können Programme können effizient portiert werden Reine Softwarelösung
Performance und Speedup Sarah Neuwirth - Software Distributed Shared Memory Grafik aus [8] entnommen
Agenda 1. Motivation 2. Was ist Software Distributed Shared Memory? 3. Single System Images 4. Open Source Lösungen 5. Kommerzielle Lösungen 6. Beispiel: vNUMA 7. Fazit 8. Literaturverzeichnis 5Sarah Neuwirth - Software Distributed Shared Memory
Was ist Software DSM? (1) Sarah Neuwirth - Software Distributed Shared Memory6 Globaler, gemeinsam genutzter Speicher Gemeinsam genutzter, virtueller Speicher bietet die Abstraktion eines gemeinsam genutzten Adressraums oberhalb einer Message-Passing Architektur.
Was ist Software DSM? (3) Sarah Neuwirth - Software Distributed Shared Memory
Funktionsweise: Lesezugriff Sarah Neuwirth - Software Distributed Shared Memory Grafik aus [8] entnommen
Funktionsweise: Schreibzugriff Sarah Neuwirth - Software Distributed Shared Memory9 primary page copy of page Grafik aus [8] entnommen
Granularität Sarah Neuwirth - Software Distributed Shared Memory10 Wahl der Blockgröße hängt ab von: Kosten der Kommunikation 1 Byte Nachricht vs Byte Nachricht Lokalität der Applikation Üblicherweise wird Seiten-basierte Granularität mit 1k bis 8k Byte Größe gewählt. Größere Seitengröße => bessere Lokalität We expect that smaller page sizes (perhaps as low as 256 bytes) work well also, but we are not so confident about larger page sizes. -- Kai Li, 1989
Memory-Kohärenz Sarah Neuwirth - Software Distributed Shared Memory11 Memory-Kohärenz wird gewährleistet durch geeignete Wahl von: Konsistenz-Modell Kohärenz-Protokoll Page Synchronisation Page Ownership
Memory Konsistenz-Modelle Sarah Neuwirth - Software Distributed Shared Memory12 Vertrag zwischen Programmierer & System Falls Programmierer Regeln befolgt => Memory konsistent Ergebnis von Memory-Operationen vorhersagbar. Beispiel: Sequentielle Konsistenz (SC) Mögliche Ergebnispaare (u,v): (0,1) (1,1) (0,0) Aber: (1,0) nicht möglich P1P2 a1: A = 1;a2: u = B; b1: B = 1;b2: v = A;
Kohärenz-Protokolle Sarah Neuwirth - Software Distributed Shared Memory13 Page Synchronisation: Write-Invalidate Strategie Write-Update Strategie Page Ownership: fest dynamisch: zentral oder verteilt
Beispiel eines Kohärenz-Protokolls Sarah Neuwirth - Software Distributed Shared Memory14 schwarz:single-writer Schema violett: Ergänzung für multiple-writer Schema
Agenda 1. Motivation 2. Was ist Software Distributed Shared Memory? 3. Single System Images 4. Open Source Lösungen 5. Kommerzielle Lösungen 6. Beispiel: vNUMA 7. Fazit 8. Literaturverzeichnis 15Sarah Neuwirth - Software Distributed Shared Memory
Single System Image (1) Sarah Neuwirth - Software Distributed Shared Memory16 Simpler, offener Blick auf Systemressourcen und Aktivitäten aller Knoten Transparentes Nutzen von Clusterressourcen, unabhängig von physikalischer Lage Programme können effizient portiert werden A single system image (SSI) is the property of a system that hides the heterogeneous and distributed nature of the available resources and presents them to users and applications as a single unified computing resource. -- Buyya et al., 2001
Single System Image (2) Sarah Neuwirth - Software Distributed Shared Memory17 Hauptziele: Ein Prozessraum Ein Userinterface Ein Speicherraum Ein I/O-Raum Process Migration, falls dynamisches Load Balancing
Single System Image (3) Sarah Neuwirth - Software Distributed Shared Memory18 Nachteile: Einsatz erfolgt in eingeschränktem Gebrauch, z.B. speziell für Job Scheduling 100%ige Verteilung funktioniert nur bei gleichen Rechnern im Cluster Hardware und Software müssen kompatibel sein Aggregation nicht möglich
Agenda 1. Motivation 2. Was ist Software Distributed Shared Memory? 3. Single System Images 4. Open Source Lösungen 5. Kommerzielle Lösungen 6. Beispiel: vNUMA 7. Fazit 8. Literaturverzeichnis 19Sarah Neuwirth - Software Distributed Shared Memory
Open Source Lösungen für Software DSM Sarah Neuwirth - Software Distributed Shared Memory20 Linux-basierte Single System Images: Kerrighed openMosix OpenSSI
Vergleich der Open Source Lösungen Sarah Neuwirth - Software Distributed Shared Memory21 SSI FeatureKerrighedopenMosixOpenSSI Blick als ganze Maschine ps: lokale & entfernte Prozesse top: globale Memory-Statistiken PID: eindeutig & Cluster-weit mps: lokale Prozesse mtop: lokale Statistik PID: eindeutig, nur im lokalen Node ps: lokale & entfernte Prozesse top: nicht global PID: eindeutig & Cluster-weit globales Prozess Management dynamische Load Balancing der Cluster CPU dynimasche Load Balancing der Cluster CPU Single Process Space ja nein ja Single I/O Space unbekannt nein ja
Agenda 1. Motivation 2. Was ist Software Distributed Shared Memory? 3. Single System Images 4. Open Source Lösungen 5. Kommerzielle Lösungen 6. Beispiel: vNUMA 7. Fazit 8. Literaturverzeichnis 22Sarah Neuwirth - Software Distributed Shared Memory
vSMP Architektur von ScaleMP Sarah Neuwirth - Software Distributed Shared Memory Quelle [7]
ScaleMP Testsystem Sarah Neuwirth - Software Distributed Shared Memory24 ScaleMP: 13 Boards verbunden über Infiniband Jeweils 2 x Intel Xeon 2,5 GHz 13 x 16 = 208 GB RAM ~38 GB reserviert für vSMP = 170 GB verfügbar Tigerton (SMP Maschine als Referenz): 4 x Intel Xeon 2,93 GHz 1 x 64 GB RAM
Page Access Benchmark Sarah Neuwirth - Software Distributed Shared Memory25 Drei Benchmarks: read_from_other write_from_other write_self ScaleMPTigerton read_from_other μ s1.76 μ s write_from_other μ s2.29 μ s write_self 2.34 μ s2.10 μ s
Allocation Time Benchmark Sarah Neuwirth - Software Distributed Shared Memory26 Gemessen wurde Allocation Time für ein 15 GB Array mit Default Pages (4 kB) Großen Pages (2 MB) Default PagesGroße Pages Tigerton s27.0 s s20.3 s s15.8 s ScaleMP s196.2 s s187.4 s s179.2 s s121.7 s
Evaluation der vSMP Architektur Sarah Neuwirth - Software Distributed Shared Memory27 Aggregation von mehreren Boards => hoch akkumulierte Memory Bandweite (bis zu 95 GB/s) Hohe Remote Memory Access Zeit (20x) und Synchronisationszeit (150x) => Ausgeprägtes cc-NUMA Verhalten Applikationen von echten Usern profitieren von vSMP FIRE erreicht Speedup von ~80 SHEMAT-Suite erreicht Speedup von 41.5 Vgl. Benchmarks Schmidl et al. [6]
Lösungen von Symmetric Computing Sarah Neuwirth - Software Distributed Shared Memory28 Lösungen: Duet TM Departmental SuperComputer Trio TM Departmental SuperComputer Features: Large Single Shared Memory SSI Linux Support Distributed Symmetric Multi-Processing OpenMP, Pthreads, POSIX
Trio TM Departmental SuperComputer Sarah Neuwirth - Software Distributed Shared Memory29 Spezifikation des Testsystems: Prozessoren: 72 Cores (9x 8-Core 2.6 GHz AMD Opteron) Memory: 384 GB 1333 MHz DDR3 (4 GB DIMMs) Interconnect: 40 Gbps InfiniBand
Benchmark-Ergebnisse für Trio Sarah Neuwirth - Software Distributed Shared Memory30 TrioDepartmental SuperComputer: NCBI Blast Performance: 47-mal schneller für 64 Cores 53-mal schneller für 72 Cores HMMER3 Performance: 47-mal schneller für 64 Cores 53-mal schneller für 72 Cores NAMD Performance: 49-mal schneller für 64 Cores 55-mal schneller für 72 Cores
Agenda 1. Motivation 2. Was ist Software Distributed Shared Memory? 3. Single System Images 4. Open Source Lösungen 5. Kommerzielle Lösungen 6. Beispiel: vNUMA 7. Fazit 8. Literaturverzeichnis 31Sarah Neuwirth - Software Distributed Shared Memory
vNUMA (1) Sarah Neuwirth - Software Distributed Shared Memory Charakteristiken: DSM System integriert in Hypervisor Single-Writer/Multiple-Reader Write-Invalidate Protokoll Fixierter, dezentraler Manager Ziel: Anwenden unveränderter Binaries von SMP Architekturen
vNUMA (2) Sarah Neuwirth - Software Distributed Shared Memory33 Test-System: 8 HP rx2600 Server 900 MHz Itanium 2 Prozessoren eine CPU pro Server Gigabit Ethernet verbunden durch HP ProCurve 2780 Switch Linux kB Seiten (intern zerlegt in 4 kB Seiten)
Applikationen für Benchmarks Sarah Neuwirth - Software Distributed Shared Memory34 CG – Approximation für kleinsten Eigenwert einer großen, dünnbesetzten, symmetrischen, positiv definierten Matrix FFT – high-performance FFT Kernel. Jedem Prozessor werden n/p Zeilen einer Matrix zugeteilt. MG – vereinfachter multigrid Kernel
vNUMA: HPC Benchmarks Sarah Neuwirth - Software Distributed Shared Memory x-Achse: Anzahl an Knoten y-Achse: Speedup
vNUMA: Datenbank Benchmark Sarah Neuwirth - Software Distributed Shared Memory36 Getestete Queries: SELECT SEARCH AGGREGATE COMPLEX
Agenda 1. Motivation 2. Was ist Software Distributed Shared Memory? 3. Single System Images 4. Open Source Lösungen 5. Kommerzielle Lösungen 6. Beispiel: vNUMA 7. Fazit 8. Literaturverzeichnis 37Sarah Neuwirth - Software Distributed Shared Memory
Fazit Sarah Neuwirth - Software Distributed Shared Memory38 Reine Softwarelösung: Single System Images Art des Managers essentiell zur bestmöglichen Ausnutzung der zugrunde liegenden Prozessorarchitektur Nutzung von Common-of-the-Shelf Boards möglich Viele Ansätze, aber noch keine optimale Lösung gefunden => Alles eine Frage der Anwendung!
Agenda 1. Motivation 2. Was ist Software Distributed Shared Memory? 3. Single System Images 4. Open Source Lösungen 5. Kommerzielle Lösungen 6. Beispiel: vNUMA 7. Fazit 8. Literaturverzeichnis 39Sarah Neuwirth - Software Distributed Shared Memory
Literaturverzeichnis (1) Sarah Neuwirth - Software Distributed Shared Memory40 [1] Kai Li: Memory Coherence in Shared Virtual Memory Systems, ACM Transactions on Computer Systems, 7(4), [2] Lottiaux et al.: OpenMosix, OpenSSI and Kerrighed: A Comparative Study, [3] Zhou et al.: Relaxed Consistency and Coherence Granularity in DSM Systems: A Performance Evaluation, [4] Iftode et al.: Understanding Application Performance on Shared Virtual Memory Systems, In Proceedings of the 23rd Annual International Symposium on Computer Architecture, Mai
Literaturverzeichnis (2) Sarah Neuwirth - Software Distributed Shared Memory41 [5] Matthew Chapman: vNUMA: A Virtual Shared-Memory Multiprocessor, Proceedings of the 2009 conference on USENIX Annual technical conference, [6] Schmidl et al.: How to scale Nested OpenMP Applications on the ScaleMP vSMP Architecture, IEEE International Conference on Cluster Computing, [7] ScaleMP: Virtualization for Aggregation and The vSMP Architecture, Technical Whitepaper, [8] Vorlesungsskript zu Rechnerarchitektur II [9] Symmetric Computing,
Literaturverzeichnis (3) Sarah Neuwirth - Software Distributed Shared Memory42 [10] Buyya et al.: Single System Image, International Journal of High Performance Computing Applications, 15, 2001 [11] Bailey et al.: The NAS Parallel Benchmarks, The International Journal of Supercomputer Applications, 5(3), 1991
Ende Sarah Neuwirth - Software Distributed Shared Memory43 Vielen Dank für die Aufmerksamkeit!