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 2 Sarah Neuwirth - Software Distributed Shared Memory
Motivation 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 3 Sarah Neuwirth - Software Distributed Shared Memory
Performance und Speedup Grafik aus [8] entnommen 4 Sarah Neuwirth - Software Distributed Shared Memory
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 5 Sarah Neuwirth - Software Distributed Shared Memory
Was ist Software DSM? (1) Globaler, gemeinsam genutzter Speicher Gemeinsam genutzter, virtueller Speicher bietet die Abstraktion eines gemeinsam genutzten Adressraums oberhalb einer Message-Passing Architektur. 6 Sarah Neuwirth - Software Distributed Shared Memory
Was ist Software DSM? (3) 7 Sarah Neuwirth - Software Distributed Shared Memory
Funktionsweise: Lesezugriff Grafik aus [8] entnommen 8 Sarah Neuwirth - Software Distributed Shared Memory
Funktionsweise: Schreibzugriff primary page copy of page Grafik aus [8] entnommen 9 Sarah Neuwirth - Software Distributed Shared Memory
Granularität Wahl der Blockgröße hängt ab von: Kosten der Kommunikation 1 Byte Nachricht vs. 1024 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 Weexpectthatsmallerpagesizes(perhapsaslowas256bytes)workwellalso, butwearenotsoconfidentaboutlargerpagesizes. --KaiLi,1989 10 Sarah Neuwirth - Software Distributed Shared Memory
Memory-Kohärenz Memory-Kohärenz wird gewährleistet durch geeignete Wahl von: Konsistenz-Modell Kohärenz-Protokoll Page Synchronisation Page Ownership 11 Sarah Neuwirth - Software Distributed Shared Memory
Memory Konsistenz-Modelle 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) P1 P2 (1,1) (0,0) Aber: (1,0) nicht möglich a1:a = 1; a2: u = B; b1: B = 1; b2: v = A; 12 Sarah Neuwirth - Software Distributed Shared Memory
Kohärenz-Protokolle Page Synchronisation: Write-Invalidate Strategie Write-Update Strategie Page Ownership: fest dynamisch: zentral oder verteilt 13 Sarah Neuwirth - Software Distributed Shared Memory
Beispiel eines Kohärenz-Protokolls schwarz: single-writer Schema violett: Ergänzung für multiple-writer Schema 14 Sarah Neuwirth - Software Distributed Shared Memory
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 15 Sarah Neuwirth - Software Distributed Shared Memory
Single System Image (1) 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. --Buyyaetal.,2001 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 16 Sarah Neuwirth - Software Distributed Shared Memory
Single System Image (2) Hauptziele: Ein Prozessraum Ein Userinterface Ein Speicherraum Ein I/O-Raum Process Migration, falls dynamisches Load Balancing 17 Sarah Neuwirth - Software Distributed Shared Memory
Single System Image (3) 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 18 Sarah Neuwirth - Software Distributed Shared Memory
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 19 Sarah Neuwirth - Software Distributed Shared Memory
Open Source Lösungen für Software DSM Linux-basierte Single System Images: Kerrighed openmosix OpenSSI 20 Sarah Neuwirth - Software Distributed Shared Memory
Vergleich der Open Source Lösungen SSI Feature Kerrighed openmosix OpenSSI Blick als ganze Maschine globales Prozess Management Single Process Space ps: lokale & entfernte Prozesse top: globale Memory-Statistiken PID: eindeutig & Cluster-weit dynamische Load Balancing der Cluster CPU mps: lokale Prozesse mtop: lokale Statistik PID: eindeutig, nur im lokalen Node dynamische Load Balancing der Cluster CPU ja nein ja Single I/O Space unbekannt nein ja ps: lokale & entfernte Prozesse top: nicht global PID: eindeutig & Cluster-weit dynimasche Load Balancing der Cluster CPU 21 Sarah Neuwirth - Software Distributed Shared Memory
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 22 Sarah Neuwirth - Software Distributed Shared Memory
vsmp Architektur von ScaleMP Quelle [7] 23 Sarah Neuwirth - Software Distributed Shared Memory
ScaleMP Testsystem ScaleMP: 13 Boards verbunden über Infiniband Jeweils 2 x Intel Xeon E5420 @ 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 X7350 @ 2,93 GHz 1 x 64 GB RAM 24 Sarah Neuwirth - Software Distributed Shared Memory
Page Access Benchmark Drei Benchmarks: read_from_other write_from_other write_self ScaleMP Tigerton read_from_other 43.37 µs 1.76 µs write_from_other 40.44 µss 2.29 µss write_self 2.34 µs 2.10 µs 25 Sarah Neuwirth - Software Distributed Shared Memory
Allocation Time Benchmark Gemessen wurde Allocation Time für ein 15 GB Array mit Default Pages (4 kb) Großen Pages (2 MB) Tigerton Default Pages Große Pages 1 34.7 s 27.0 s 8 16.6 s 20.3 s 16 26.9 s 15.8 s ScaleMP 1 211.1 s 196.2 s 8 423.4 s 187.4 s 16 449.0 s 179.2 s 104 432.4 s 121.7 s 26 Sarah Neuwirth - Software Distributed Shared Memory
Evaluation der vsmp Architektur 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] 27 Sarah Neuwirth - Software Distributed Shared Memory
Lösungen von Symmetric Computing 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 28 Sarah Neuwirth - Software Distributed Shared Memory
Trio TM Departmental SuperComputer 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 29 Sarah Neuwirth - Software Distributed Shared Memory
Benchmark-Ergebnisse für Trio Trio Departmental 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 30 Sarah Neuwirth - Software Distributed Shared Memory
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 31 Sarah Neuwirth - Software Distributed Shared Memory
vnuma (1) Charakteristiken: DSM System integriert in Hypervisor Single-Writer/Multiple-Reader Write-Invalidate Protokoll Fixierter, dezentraler Manager Ziel: Anwenden unveränderter Binaries von SMP Architekturen 32 Sarah Neuwirth - Software Distributed Shared Memory
vnuma (2) Test-System: 8 HP rx2600 Server 900 MHz Itanium 2 Prozessoren eine CPU pro Server Gigabit Ethernet verbunden durch HP ProCurve 2780 Switch Linux 2.6.16 16 kb Seiten (intern zerlegt in 4 kb Seiten) 33 Sarah Neuwirth - Software Distributed Shared Memory
Applikationen für Benchmarks 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 34 Sarah Neuwirth - Software Distributed Shared Memory
vnuma: HPC Benchmarks x-achse: Anzahl an Knoten y-achse: Speedup 35 Sarah Neuwirth - Software Distributed Shared Memory
vnuma: Datenbank Benchmark Getestete Queries: SELECT SEARCH AGGREGATE COMPLEX 36 Sarah Neuwirth - Software Distributed Shared Memory
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 37 Sarah Neuwirth - Software Distributed Shared Memory
Fazit 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! 38 Sarah Neuwirth - Software Distributed Shared Memory
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 39 Sarah Neuwirth - Software Distributed Shared Memory
Literaturverzeichnis (1) [1] Kai Li: Memory Coherence in SharedVirtual Memory Systems, ACM Transactions on Computer Systems, 7(4), 1989. [2] Lottiaux et al.: OpenMosix, OpenSSI and Kerrighed: A Comparative Study, 2005. [3] Zhou et al.: Relaxed Consistency and Coherence Granularity in DSM Systems: A Performance Evaluation, 1997. [4] Iftode et al.: Understanding Application Performance on SharedVirtual Memory Systems, In Proceedings of the 23rd Annual International Symposium on Computer Architecture, Mai 1996. 40 Sarah Neuwirth - Software Distributed Shared Memory
Literaturverzeichnis (2) [5] Matthew Chapman: vnuma: A Virtual Shared-Memory Multiprocessor, Proceedings of the 2009 conference on USENIX Annual technical conference, 2009. [6] Schmidl et al.: How to scale Nested OpenMP Applications on the ScaleMP vsmp Architecture, IEEE International Conference on Cluster Computing, 2010. [7] ScaleMP: Virtualization for Aggregation and The vsmp Architecture, Technical Whitepaper, 2009. [8] Vorlesungsskript zu Rechnerarchitektur II [9] Symmetric Computing, http://www.symmetriccomputing.com/ 41 Sarah Neuwirth - Software Distributed Shared Memory
Literaturverzeichnis (3) [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 42 Sarah Neuwirth - Software Distributed Shared Memory
Ende Vielen Dank für die Aufmerksamkeit! 43 Sarah Neuwirth - Software Distributed Shared Memory