Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Parallele E/A auf Clustern

Ähnliche Präsentationen


Präsentation zum Thema: "Parallele E/A auf Clustern"—  Präsentation transkript:

1 Parallele E/A auf Clustern
Joachim Worringen Lehrstuhl für Betriebssysteme RWTH Aachen

2 Agenda Cluster, verteilte & parallele E/A
Anwendungen, Eigenschaften und Entwicklung paralleler E/A Verfahren und Implementationen Fallstudien: Cplant & PVFS Parallele E/A via SCI Zusammenfassung Parallele E/A auf Clustern – Chemnitz 2001 Lehrstuhl für Betriebsysteme

3 Was sind Cluster ? Eine Zahl eigenständiger, vernetzter Rechnersysteme zur Lösung einer oder mehrerer gleichartiger Aufgaben. Aspekte: Dedizierte Systeme – kein NOW „off-the-shelf“ Standardkomponenten – billig! Evtl. leistungsfähiges Verbindungsnetz 2 bis tausende Knoten Häufig: frei verfügbare Software Parallele E/A auf Clustern – Chemnitz 2001 Lehrstuhl für Betriebsysteme

4 Verteilte vs. Parallele E/A
Verteilte E/A: Ein gemeinsamer Datenbestand steht einer Gruppe verteilter Systeme gleichartig zur Verfügung Typische Nutzung: ein Prozess pro Datei Typische Architektur: Zentrales Speichersystem Parallele E/A: Paralleles Programm mit P > 1 Prozessen Gleichzeitige Nutzung mehrerer Speichergeräte für eine Datei Typische Nutzung: P Prozesse pro Datei gleichzeitig Notwendige Architektur: Parallel arbeitende Speichersysteme Parallele E/A auf Clustern – Chemnitz 2001 Lehrstuhl für Betriebsysteme

5 Parallele E/A auf Clustern
Parallele E/A: aufkommendes Thema Anfang 90er SMP-Server: Erweiterung existierender Technologie MPP: Spezialtechnologie und Algorithmik Scalable IO-Initiative Vielzahl von Applikationsbibliotheken Neue Schnittstellen (MPI-IO) Cluster: Mischung von SMP- und MPP-Technologie Neue Entwicklungs- und Einsatzbedingungen Übertragen von Erkenntnissen auf neue Umgebung Neue Entwicklungsbedingungen heißt, daß nicht mehr einzelne Firmen eine spezielle Lösung für IHREN MPP entwickeln, sondern generische und offene Lösungen wichtig sind, die auf den vielen verschiedenen Clusterarchitekturen einsetzbar sind. Im Gegensatz zu MPP ist bei Clustern Heterogenität in Bezug auf Kapazität und Leistung der einzelnen Knoten möglich. Prinzipien bleiben gleich! Parallele E/A auf Clustern – Chemnitz 2001 Lehrstuhl für Betriebsysteme

6 Anwendungsfelder Datenbanken Multimedia Ingenieursanwendungen:
Strömungssimulation EM-Feld-Berechnungen ... SFB Numerik ... Wissenschaftliche Simulationen: Quantendynamische Molekülsimulation (Uni Münster): 6 x 580 MB/Molekül Nicht-sequentielle Lese- & Schreibzugriffe Parallele E/A auf Clustern – Chemnitz 2001 Lehrstuhl für Betriebsysteme

7 Fälle paralleler E/A Wann ist E/A in einem parallelen Programm erforderlich? Ausgabe der Ergebnisse Einmalig oder wiederholt Online- oder Offline-Visualisierung Einlesen von Parametern / Initialisierung Temporäres Auslagern von Daten Fehlersuche / Validierung Checkpointing Out-of-Core Berechnungen Parallele E/A auf Clustern – Chemnitz 2001 Lehrstuhl für Betriebsysteme

8 Eigenschaften paralleler E/A
N-facher Zugriff auf eine Datei Burst-Charakteristik; zeitgleich von allen Prozessen Zugriffsmuster: Typisch: Verschachtelt, aber regulär Mitunter irregulär 90 : 10 Regel: 90% der Zugriffe betreffen nur 10% der Daten Vielfach Schreibzugriffe i.d.R. auf disjunkte Dateibereiche Lesezugriffe von externen Systemen Häufig möglich: Überlappung von E/A / Berechnung Viel Hauptspeicher erforderlich ! Parallele E/A auf Clustern – Chemnitz 2001 Lehrstuhl für Betriebsysteme

9 E/A-Anforderungen: Abschätzung
Hypothetisches System: F = 1 TFLOP/s Peak Effektive Leistung: 10% Peak = 100 GFLOPS/s FLOP-to-byte Verhältnis 500 : 1 Datenrate: 200 MB/s effektive, kontinuierliche E/A-Bandbreite Nach einer Woche: 120 TB Problem: Daten sind verteilt Datenausgabe nicht kontinuierlich „Daten sind veteilt“ meint, daß die Daten über die Knoten des Systems verteil liegen Parallele E/A auf Clustern – Chemnitz 2001 Lehrstuhl für Betriebsysteme

10 E/A-Anforderungen: Entwicklung (1)
RAM-Kapazität: M / F ~ E/A-Kapazität: Ctotal / M ~ Heute: 1 TFLOP/s-System Ctotal = 20 TB Mit Cdisk = 40 GB ist Ndisk = 500 Mit Rdisk = 20 MB/s ist Rtotal = 10 GB/s F/ Rtotal = 100 Wachstum: E/A-Datenrate: 40% pro Jahr E/A-Kapazität: 100% pro Jahr CPU-Leistung: 60% pro Jahr Parallele E/A auf Clustern – Chemnitz 2001 Lehrstuhl für Betriebsysteme

11 E/A-Anforderungen: Entwicklung (2)
5 Jahre später – neuer Rechner: F = 10 TFLOP/s (60% pro Jahr) entsprechend: Ctotal = 200 TB Mit Cdisk = 1200 GB und Rdisk = 100 MB/s: Rtotal = 166 * Rdisk = 16,6 GB/s F / Rtotal = 625 Dieser Rechner hat ein 6-fach schlechteres Verhältnis von E/A-Rate zu CPU-Leistung ! Engpaß ist E/A-Rate, nicht E/A-Kapazität Parallele E/A auf Clustern – Chemnitz 2001 Lehrstuhl für Betriebsysteme

12 Kostenfaktoren Was sind die Kostenfaktoren ? Flaschenhälse
Optimierungspotential Zugriffszeiten Speichersystem (Platten) Zahl der Anforderungen Suchzeiten & Bandbreite Kommunikationszeit Zahl und Größe der Datenpakete / Nachrichten Überlastungseffekte Zahl der Clients, die gleichzeitig eine Ressource nutzen Parallele E/A auf Clustern – Chemnitz 2001 Lehrstuhl für Betriebsysteme

13 Verfahren & Implementationen
Aufbau von Systemen mit paralleler E/A Verfahren zur Nutzung dieser Systeme Implementationen Hardware Software Schnittstellen Parallele E/A auf Clustern – Chemnitz 2001 Lehrstuhl für Betriebsysteme

14 Striping Basisverfahren zur Bandbreitenerhöhung:
Nutzung von N parallelen Speichersystemen bis zu N-fache Bandbreite Stripetiefe Je größer der Stripefaktor, desto höher der maximale Durchsatz. Aber: die Latenz steigt an! Typisch: 2 - 4 Je kleine die Stripetiefe, desto höher die Parallelität auch schon bei kleinen Transfers. Aber: die maximale Bandbreite wird mit zu kleinen Stripetiefen nicht erreicht (Zu hoher Overhead). Typisch: 64 bis 256kB Stripefaktor Parallele E/A auf Clustern – Chemnitz 2001 Lehrstuhl für Betriebsysteme

15 RAID (1) Redundant Array of Inexpensive Disks
RAID 0: Striping ohne Redundanz N-fache Bandbreite bei N Platten softwaremäßig möglich RAID 3: Striping mit Redundanz Jeder Zugriff erfolgt auf alle Platten gut für wenige, große Zugriffe RAID 5: Striping mit Redundanz Separate Plattenverwaltung, verteilte Paritätsspeicherung bei kleinen, hochfrequenten Zugriffen besser als Level 3 schlechter bei bei (langen) Schreibzugriffen Inexpensive oder Independant Disks - beides ist mittlerweile zutreffend. RAID3: Liefert gut hohe Bandbreiten, weil bei jedem Zugriff alle Platten vewendet werden Problem bei kleinen Zugriffen: Lese/Schreibzugriff, um Block aufzufüllen. Abhilfe: pseudo-RAID5 für solche Zugriffe. RAID5: Besser für hohe Read-Request-Raten, da nur auf die Platten zugegriffen wird, die die Daten halten Schlecht für hohe Schreib-Bandbreiten, da die Parität bei jedem Schreibzugriff separat geschrieben werden muß und dazu andere Blöcke gelesen werden müssen. Abhilfe: Caches Parallele E/A auf Clustern – Chemnitz 2001 Lehrstuhl für Betriebsysteme

16 RAID (2) Kombinationen einzelner RAID-Modi:
RAID 10: Modi 0 und 1 (Spiegelung) Striping über gespiegelte Platten Schnell & sicher, aber verschwenderisch RAID 53: Modi 0 (sic!) und 3 Striping über redudante Arrays Schneller als entspr. RAID 3 Platz-effizienter als RAID 10 Parallele E/A auf Clustern – Chemnitz 2001 Lehrstuhl für Betriebsysteme

17 Shared Memory (1) Speicher P
Parallele E/A auf Clustern – Chemnitz 2001 Lehrstuhl für Betriebsysteme

18 Shared Memory (2) cc-NUMA Speicher P Bridge Speicher P
Parallele E/A auf Clustern – Chemnitz 2001 Lehrstuhl für Betriebsysteme

19 Distributed Memory (1) Rechen- und E/A-Knoten P
Parallele E/A auf Clustern – Chemnitz 2001 Lehrstuhl für Betriebsysteme

20 Distributed Memory (2) Separates E/A Netz für SAN-System P
Parallele E/A auf Clustern – Chemnitz 2001 Lehrstuhl für Betriebsysteme

21 Distributed Memory (3) Homogene Universalknoten P
Parallele E/A auf Clustern – Chemnitz 2001 Lehrstuhl für Betriebsysteme

22 Dateisysteme: Architektur
Schnittstelle: Zugriff über Bibliothek Betriebssystemschnittstelle Dateistruktur Verteilung der Daten über die Speichersysteme Steuerbar durch den Benutzer ? Implementationsaspekte: Zuverlässigkeit (RAID ?) Zugreifbarkeit – intern und extern Caching – Ort und Größe des Caches, Konsistenzmodell Andere Optimierungen (Prefetching) Dedizierte E/A-Knoten ? Parallele E/A auf Clustern – Chemnitz 2001 Lehrstuhl für Betriebsysteme

23 Intel PFS Einsatz in Intel Paragon: Verteiltes Betriebssystem OSF/1 AD
Strikte Trennung der Knotenfunktionen: E/A, Compute, Service E/A-Knoten = Compute-Knoten + RAID-3 PFS setzt auf UFS auf Striping über mehrere UFS-Dateisysteme E/A-Knoten für Paging in Baumstruktur organisiert Caching auf E/A-Knoten deaktivierbar Einsparung (mindestens) eines Kopiervorgangs Prefetching Parallele E/A auf Clustern – Chemnitz 2001 Lehrstuhl für Betriebsysteme

24 Sun MC Solaris MC: Sun Forschungsprojekt Basierend auf Solaris
Ziel: Multi-Computer mit Single-System-Image virtuelles SMP System Kernel-Dateisystem PXFS (Proxy File System): Kohärentes Caching der Clients: Daten, Attribute, Verzeichniseinträge Granularität: VM page oder Cacheline (cc-NUMA) Hochverfügbarkeit und Replikation CORBA-basierte Schnittstellen / Kommunikation Ersatz für vnode-Schnittstelle Parallele E/A auf Clustern – Chemnitz 2001 Lehrstuhl für Betriebsysteme

25 Sun MC: Integration vnode1 vnode2 vnode1 vnode2 Kernel Kernel
Standard Solaris Solaris MC Kernel Kernel vnode/VFS Caches pxfs client IDL vnode/VFS pxfs Server Provides vnode/VFS vnode1 vnode2 vnode1 vnode2 Parallele E/A auf Clustern – Chemnitz 2001 Lehrstuhl für Betriebsysteme

26 Sun MC: Hochverfügbarkeit
Server-Replikation mit Shared Mirrored Disks Client- und Serverausfälle sind transparent pxfs Client pxfs Client pxfs Server pxfs Server Checkpoint messages logging UFS logging UFS Parallele E/A auf Clustern – Chemnitz 2001 Lehrstuhl für Betriebsysteme

27 Sun PFS: Kennzeichen Client/Server Prinzip Schnittstellen:
dedizierte oder nicht-dedizierte E/A-Knoten möglich Kommunikation über MPI Schnittstellen: Standard-VFS Dateisystem Laufzeitbibliothek Optimiert auf große Dateien Einfachere Dateiindizierung (als bei UFS) größere Datenblöcke (als bei UFS) Server-seitiges Caching Konsistenz: sequentiell oder „entspannt“ Parallele E/A auf Clustern – Chemnitz 2001 Lehrstuhl für Betriebsysteme

28 Sun PFS: Architektur I/O-Daemon RTL VFS PFS MPI-IO Job Raw I/O Device
Kernel Userspace Kernel Userspace Client Server Unix Commands MPI-IO Job I/O-Daemon RTL Proxy-Daemon Raw I/O Device VFS PFS Parallele E/A auf Clustern – Chemnitz 2001 Lehrstuhl für Betriebsysteme

29 Sun PFS: Leistung 32 x HPC 450, 4 CPUs @ 300MHz, 4 GB RAM
Dedizierte PFS-Platte, ATM-Netz (16MB/s) 32 Prozesse, verteilte Matrix, Spaltengröße variiert Parallele E/A auf Clustern – Chemnitz 2001 Lehrstuhl für Betriebsysteme

30 Sun PFS vs. UFS Warum nicht immer PFS statt UFS ?
PFS optimiert auf typisches paralleles Lastprofil Schlechtere Leistung bei Standard-Lastprofil: kein client-side caching & große Blöcke! Ineffizient für viele kleine Dateien: Platz & Overhead Verfügbarkeit: Keine Redundanz zwischen den Servern Replikation / Software-RAID kostet Leistung Integrität: Beschädigung auf einem Server betrifft gesamtes FS Parallele E/A auf Clustern – Chemnitz 2001 Lehrstuhl für Betriebsysteme

31 IBM PIOFS / Vesta Einsatz auf SP2 unter AIX:
Keine dedizierten E/A-Knoten Alle Knoten haben mindestens eine Platte Zuweisung via Software (E/A, Compute, oder beides) Striping über JFS Dateisysteme Stripe-Faktor pro Datei setzbar Caching des JFS auf E/A-Knoten 2-Dimensionales Dateilayout möglich Einrichtung von Sub-Dateien Standard-mäßiges mounten Kommunikation über UDP/IP via SP2-Switch Parallele E/A auf Clustern – Chemnitz 2001 Lehrstuhl für Betriebsysteme

32 IBM GPFS / Tiger Shark Shared-Disk Dateisystem für SP2-Cluster:
Platten senden/empfangen Datenblöcke direkt über SP-Switch Skalierbarkeit: verteilte Verarbeitung der Metadaten Aber: tokenbasierte Synchronisation mit einzelnem Server! Tokensynchronisation für Schreibzugriffe feingranulare gemeinsame Zugrife: thrashing! Pagepool für Caching/Prefetching (typ. 20MB) Prefetching nur bei sequentiellen Zugriffen Sequentialisierung von versetzten Zugriffen MPI-IO für irreguläre Zugriffe empfohlen! Parallele E/A auf Clustern – Chemnitz 2001 Lehrstuhl für Betriebsysteme

33 Weitere Systeme CXFS (SGI) - Komplexes SAN-FS
Fibre-Channel Interconnect, Hochverfügbar Client-Side Caching Standardschnittstelle nicht (primär) für parallele E/A entworfen xFS (Berkeley NOW) – Software RAID Datenreplikation Jeder Rechen-Knoten ist auch E/A Knoten ein Knoten als Manager pro Datei kein zentraler Server Andere E/A-Modelle: River (Berkeley): Datenflußmodell (Producer-Consumer) Kopplung auf Device-Ebene (Honkkong) Parallele E/A auf Clustern – Chemnitz 2001 Lehrstuhl für Betriebsysteme

34 PVFS Siehe Fallstudie Parallele E/A auf Clustern – Chemnitz 2001 Lehrstuhl für Betriebsysteme

35 POSIX Standard-Unix-Dateioperationen: Kein Ausdruck für Parallelität!
open(), read(), write(), flush(), fcntl(), close() synchron Übermittelte Informationen: Kontinuierlicher Datenblock (mit Länge) Position in der Datei Erweiterungen: Asynchrone Ausführung Nicht-kontinuierliche Datenblöcke Kein Ausdruck für Parallelität! Intel PFS hat versucht, über diese Schnittstelle Parallelität auszudrücken; siehe entsprechende Folie Parallele E/A auf Clustern – Chemnitz 2001 Lehrstuhl für Betriebsysteme

36 Intel OSF/1 mit PFS Erweiterungen von POSIX:
Synchrone und asynchrone Aufrufe Neue I/O-Modi: PFS I/O Modi Getrennte Dateizeiger Gemeinsame Dateizeiger Ungeordnet Knotenordnung M_RECORD Nicht sync‘iert sync‘iert M_SYNC Atomar M_UNIX Nicht atomar M_ASYNC Gleiche Daten M_GLOBAL Versch. Daten M_LOG Parallele E/A auf Clustern – Chemnitz 2001 Lehrstuhl für Betriebsysteme

37 MPI-IO Ziel: Anwendungen mit hohem E/A-Anteil portabel und effizient zu machen Analogie zu Message Passing: Daten schreiben / lesen = Nachricht senden / empfangen Unterstützung von collective buffering und disk-directed I/O durch Anwendungs-Schnittstelle Partitionierung der Datei zwischen Prozessen Kollektive Zugriffe (benutzerdefinierte) Datentypen Asynchrone Zugriffe Kontrolle der physikalischen Lage der Daten Teil des MPI-2 Standards, verschiedene Implementierungen Parallele E/A auf Clustern – Chemnitz 2001 Lehrstuhl für Betriebsysteme

38 MPI-IO: etype & filetypes
etype: elementary datatype = MPI Datentyp Grundeinheit des Datenzugriffs filetype: aufgebaut aus etypes Partitionierung der Datei auf die Prozesse etype filetype Löcher view: displacement Sichtbare, zugreifbare Daten ... Parallele E/A auf Clustern – Chemnitz 2001 Lehrstuhl für Betriebsysteme

39 MPI-IO: file partitioning
Mehrere Prozesse greifen auf eine Datei zu Datenverteilung via filetypes & views etype filetype Prozess 0 filetype Prozess 1 filetype Prozess 2 view: displacement ... Parallele E/A auf Clustern – Chemnitz 2001 Lehrstuhl für Betriebsysteme

40 MPI-IO: API - Dateimanipulation
Common Prefix: MPI_File_... open(), close(), delete(), ... set_info(), get_info() Striping Parameter E/A-Knoten spezifizieren Felddimensionen („chunks“) set_view(), get_view() View 1 View 2 Offset 1 Offset 2 Parallele E/A auf Clustern – Chemnitz 2001 Lehrstuhl für Betriebsysteme

41 MPI-IO: API – Individueller Zugriff
Positionierung blockierend? Aufruf read write iread / MPI_Wait iwrite / MPI_Wait read_at write_at iread_at / MPI_Wait iwrite_at / MPI_Wait read_shared write_shared iread_shared / MPI_Wait iwrite_shared / MPI_Wait blockierend nicht-blockierend Lokaler Zeiger Expliziter Offset Gemeinsamer Zeiger Parallele E/A auf Clustern – Chemnitz 2001 Lehrstuhl für Betriebsysteme

42 MPI-IO: API – Kollektiver Zugriff
Positionierung blockierend? Aufruf read_all write_all read_all_begin / ...end write_all_begin / ...end read_at_all write_at_all read_at_all_begin / ...end write_at_all_begin / ...end read_ordered write_ordered read_ordered_begin / ...end write_ordered_begin / ...end blockierend nicht-blockierend Lokaler Zeiger Expliziter Offset Gemeinsamer Zeiger Parallele E/A auf Clustern – Chemnitz 2001 Lehrstuhl für Betriebsysteme

43 Fallstudie: Cplant@Sandia
MPP-Hintergrund Ehemals größte Intel Paragon-Installation ASCI Red / Intel TFLOPS Umstellung auf Off-the-shelf-Technologie Konzept: Maximale Skalierbarkeit (1000e Knoten) Unabhängige, „skalierende“ Komponenten Generische Technologie Kontinuierlicher Aus- und Umbau des Systems Partitionierung des Systems in Funktionsbereiche Trennung durch klare Schnittstellen Einfache Umkonfiguration Ausreichend Ressourcen zur Systembeobachtung/wartung Parallele E/A auf Clustern – Chemnitz 2001 Lehrstuhl für Betriebsysteme

44 Cplant: Architektur Realisation: vielstufige Entwicklung
Prinzipieller Aufbau: Realisation: vielstufige Entwicklung mehrere Clustergenerationen (z.Z. bis 1024 Knoten) Parallele E/A auf Clustern – Chemnitz 2001 Lehrstuhl für Betriebsysteme

45 Cplant: I/O, Stufe 1 I/O-Dienst yod auf I/O-Knoten
Round-Robin-Scheduling Compute – I/O Knoten „parallele“ I/O auf unabhängige, getrennte Dateien POSIX-Schnittstelle: pf_open(), pf_seek(), pf_read(), ... Jeder Prozeß arbeitet auf individueller Datei: Brauchbar für temporäre Dateien etc. fixierte Zahl von Prozessen für Anwendung Administration der Dateien: Albtraum Parallele E/A auf Clustern – Chemnitz 2001 Lehrstuhl für Betriebsysteme

46 Cplant: I/O, Stufe 2 ENFS-Dienst: Skalierbarkeit:
NFS ohne locking Keine Sychronisation Skalierbarkeit: Mehrere Pfade zum Server I/O-Knoten als Proxy Server muß Leistung bringen: 119 MB/s von 8 I/O-Knoten auf eine SGI O2K mit XFS Einsatz: Visualisierung Viz NFS ENFS gigE switch Parallele E/A auf Clustern – Chemnitz 2001 Lehrstuhl für Betriebsysteme

47 Cplant: I/O, Stufe 3 Evaluierung: PVFS ? Compaq’s Petal/Frangipani ?
Anderes kommerzielles SAN-System ? Fortsetzung unter Parallele E/A auf Clustern – Chemnitz 2001 Lehrstuhl für Betriebsysteme

48 Fallstudie: PVFS PVFS: Entwicklung & Zielgruppe Architektur Evaluation
Vielzahl von frei verfügbaren Lösungen für parallele E/A: Galley FS Panda PIOUS PPFS .... Forschungsprojekte mit bestimmten Schwerpunkt PVFS: Entwicklung & Zielgruppe Architektur Evaluation Parallele E/A auf Clustern – Chemnitz 2001 Lehrstuhl für Betriebsysteme

49 PVFS: Entwicklung & Zielgruppe
Open-Source Entwicklung der Clemson University Zielgruppe: Linux-Cluster mit TCP/IP Interconnect Designziele: Hohe Bandbreite für typische parallele E/A Vielfältige API Unterstützung: Native PVFS, Unix/POSIX, MPI-IO Integration: Nutzbar mit Standard-Unix-Werkzeugen Allgemein: durch jede Anwendung ohne Neucompilierung Robust, skalierbar, einfach zu installieren, ... Parallele E/A auf Clustern – Chemnitz 2001 Lehrstuhl für Betriebsysteme

50 PVFS: Architektur Frei konfigurierbare Knotentopologie:
Compute, I/O, Compute & I/O TCP/IP-Kommunikation Zentraler Metadaten-Server Aufsatz auf lokales Dateisystem: ext2, ReiserFS, ... Server-seitiger Cache Client-seitiger Cache? Prefetching? Stripe-Konfiguration pro Datei Nicht aufregend – aber einsatzfähig! Parallele E/A auf Clustern – Chemnitz 2001 Lehrstuhl für Betriebsysteme

51 PVFS: Evaluation POSIX-Leistung sequentiell:
durch Interconnect auf 10MB/s beschränkt Designgerechter Einsatz: parallel BTIO Benchmark POSIX pseudo-POSIX via MPI-IO optimiertes MPI-IO Parallele E/A auf Clustern – Chemnitz 2001 Lehrstuhl für Betriebsysteme

52 BT / BTIO Benchmark BT: Teil der NAS Parallel Benchmarks
Strömungssimulation Block-triagonaler Gleichungslöser Diskrete Approximation Gebietsaufteilung für quadratische Prozesszahl BTIO: Erweiterung um E/A Abspeichern des 3D-Lösungsvektors alle N Berechnungschritte Nur Schreibzugriffe Verschiedene Implementationen: Explizit parallel MPI-IO „naiv“ und optimiert BT Klasse A: E/A-Größe etwas 420MB Parallele E/A auf Clustern – Chemnitz 2001 Lehrstuhl für Betriebsysteme

53 BTIO: Datenstruktur Logisch: 3D-Feld Gebietszerlegung
Linearisierung für E/A Entlang der Dimensionen Parallele E/A auf Clustern – Chemnitz 2001 Lehrstuhl für Betriebsysteme

54 BTIO: Testumgebung 8 Dual-SMP Knoten mit 800MHz Pentium III 512 MB RAM
64bit / 66 MHz PCI 30 GB IDE-Festplatte 7200 RPM, DMA 66MHz ~ 25 MB/s Transferrate (Linux, ext2) 100 Mbit switched Ethernet (TCP/IP, MPICH P4) SCI Interconnect (SCI-MPICH) Linux 2.4.4 PVFS 1.5 Jeder Knoten diente als I/O-Knoten 20 GB pro Knoten für PVFS, entspr. 160GB Partitionsgröße Parallele E/A auf Clustern – Chemnitz 2001 Lehrstuhl für Betriebsysteme

55 BT: Ethernet vs. SCI Nur zur Darstellung, wie gut die Skalierung ohne IO ist - natürlich ist SCI übelegen, aber BT ist nicht besonders kommunikationsintensiv (siehe Traces). Parallele E/A auf Clustern – Chemnitz 2001 Lehrstuhl für Betriebsysteme

56 BTIO via NFS: IO-Bandbreite
Ein Knoten alleine hat genug Cache, um den einzelnen Zugriff bei Full-MPIIO abzufangen. Dies scheint innerhalb des MPI-IO zu erfolgen, da explicit-IO deutlcih langsamer ist. Bei Simple-MPIIO nützt der Cache nichts, da so viele Schreibzugriffe erfolgen. Bei 4 Prozessen und mehr kann MPI-IO nicht mehr cachen,und die NFS-Konflikte drücken die Bandbreite (extrem bei simple-MPIIO). Explicit-IO hat keine NFS-Konflikte innerhalb einer Datei, aber die Serverbelastung ist natürlich hoch. Parallele E/A auf Clustern – Chemnitz 2001 Lehrstuhl für Betriebsysteme

57 BTIO via PVFS: IO-Bandbreite
Via PVFS wird bei explicit-IO sichtbar, daß sich die E/A je besser entwickelt, desto ausgeglichener das Verhältnis zwischen Compute- und E/A-Knoten ist. Simple-MPIIO ist wieder einmal extrem unangepaßt. Full-MPIIO hat den Peak bei 4 Prozessen, offenbar wird der Cache hie gut genutzt und es gibt eine günstige Abbildung von E/A-Anforderungen auf die E/A-Knoten (siehe Vergleich mit nächstem Diagramm, 512MB vs. 256MB) Bei 16 Prozessen beträgt die Effizienz für ch_p4 65%, während sie für ch_smi noch 71% beträgt. Parallele E/A auf Clustern – Chemnitz 2001 Lehrstuhl für Betriebsysteme

58 BTIO – Caching in PVFS Vergleich: 512 MB/Knoten vs 256 MB/Knoten (full MPI-IO) Das Problem konnte nicht auf einem Knoten mit 256 MB bearbeitet werden - extremes Thrashing/Swapping führte zu inakzeptabler Ausführungszeit (Ausführung abgebrochen). Die E/A-Bandbreite pro Knoten nimmt bei 256MB jedoch weniger stark ab als bei 512MB. Hier spielen 2 Faktoren eine Rolle: Zur Verfügung stehender freier Speicher im Knoten. Dieser nimmt von 4 auf 9 Prozesse zu, von 9 auf 16 Prozesse jedoch bleibt er etwa konstant (da zwei Prozesse pro Knoten) Die anfallende Kommunikation nimmt mit der Zahl der Prozesse immer weiter zu, sowohl bei der Kommunikation innerhalb von MPI-IO als auch für die Datenübertragung von PVFS. Daher nimmt die Bandbreite von 9 auf 16 Knoten ab. Die Größe der Zugriffe via MPI-IO wird bei zunehmender Prozesszahl kleiner. Parallele E/A auf Clustern – Chemnitz 2001 Lehrstuhl für Betriebsysteme

59 BTIO – Caching in PVFS Vergleich: 512 MB/Knoten vs 256 MB/Knoten (full MPI-IO) Hier wird deutllich, daß sich die kumulierten E/A-Bandbreiten treffen werden, da daß Caching gegenüber der Kommunikation immer weniger Bedeutung hat. Parallele E/A auf Clustern – Chemnitz 2001 Lehrstuhl für Betriebsysteme

60 BTIO: PVFS-IO-Topologie (1)
Dedizierte IO-Knoten vs. Compute-IO-Knoten Konzeptvergleich: Nutzung der Ressourcen Einfluß von CPU / Speicherauslastung auf E/A-Leistung 3 Testkonfigurationen: 8 x C-IO: 4 x IO: 4 x C-IO: Parallele E/A auf Clustern – Chemnitz 2001 Lehrstuhl für Betriebsysteme

61 BTIO: PVFS-IO-Topologie (2)
256 MB/Knoten (full MPI-IO) Die Tests wurden mit 256MB/Knoten gefahren, um Cache-Effekte zu verringern Optimal ist, wenn jedem Compute-Knoten ein dedizieter E/A-Knoten zur Verfügung steht. Dem entsprich der starke Einbruch bei 9 Prozessen für 4xC-IO: die C-IO Knoten sind klar überlastet, während bei 4xIO der Einbruch nur halb so stark ist. Wenn (wie üblich) nicht eine 1:1 Aufteilung von E/A- zu Compute-Knoten möglich ist (hier sollte ggf. bedacht werden, daß die E/A-Knoten keine besonders hohe CPU-Leistung brauchen -> Verwendung älterer Clusterknoten sinnvoll!), sollte eine möglichst große Zahl (also alle) kombinieter E/A- und Compute-Knoten eingerichtet werden. Parallele E/A auf Clustern – Chemnitz 2001 Lehrstuhl für Betriebsysteme

62 BTIO – simple MPI-IO (1) call MPI_File_open(comm_solve, filenm, MPI_MODE_WRONLY + MPI_MODE_CREATE, MPI_INFO_NULL, fp, ierr) iseek = 0 call MPI_File_set_view(fp, iseek, MPI_DOUBLE_PRECISION, MPI_DOUBLE_PRECISION, 'native', MPI_INFO_NULL, ierr) Parallele E/A auf Clustern – Chemnitz 2001 Lehrstuhl für Betriebsysteme

63 BTIO – simple MPI-IO (2) do cio=1,ncells do kio=0, cell_size(3,cio)-1
do jio=0, cell_size(2,cio)-1 iseek=5*(cell_low(1,cio) + ….  count=5*cell_size(1,cio) call MPI_File_write_at(fp, iseek, u(1,0,jio,kio,cio), count, MPI_DOUBLE_PRECISION, mstatus, ierr) enddo Parallele E/A auf Clustern – Chemnitz 2001 Lehrstuhl für Betriebsysteme

64 BTIO – simple MPI-IO (3) MPI-IO-Trace: kompletter Compute-IO-Zyklus
MPI_File_write_at() Parallele E/A auf Clustern – Chemnitz 2001 Lehrstuhl für Betriebsysteme

65 BTIO – simple MPI-IO (4) MPI-IO-Trace: Beginn der IO-Phase
Parallele E/A auf Clustern – Chemnitz 2001 Lehrstuhl für Betriebsysteme

66 BTIO – full MPI-IO (1) Vereinbarung eines Datentyps: Block von 5 doubles call MPI_Type_contiguous(5, MPI_DOUBLE_PRECISION, element, ierr) call MPI_Type_commit(element, ierr) call MPI_Type_extent(element, eltext, ierr) Aufteilung des gesamten Feldes in Subfelder call MPI_Type_create_subarray(3, sizes, subsizes, starts, MPI_ORDER_FORTRAN, element, cell_btype(c), ierr) Gesamtes Feld als ein Typ aus Subfeldern zusammengesetzt call MPI_Type_struct(ncells, cell_blength, cell_disp, cell_btype, combined_btype, ierr) call MPI_Type_commit(combined_btype, ierr) call MPI_Type_extent(combined_btype, iosize, ierr) Parallele E/A auf Clustern – Chemnitz 2001 Lehrstuhl für Betriebsysteme

67 BTIO – full MPI-IO (2) call MPI_File_open(comm_solve, filenm,
MPI_MODE_WRONLY+MPI_MODE_CREATE, MPI_INFO_NULL, fp, ierr) Datei als Folge von Subfeldern darstellen iseek = 0 call MPI_File_set_view(fp, iseek, element, combined_btype, 'native', info, ierr) Gesamtes Feld ausgeben – ohne Schleife call MPI_File_write_at_all(fp, iseek, u, 1, combined_btype, mstatus, ierr) call MPI_Type_size(combined_btype, iosize, ierr) iseek = iseek + iosize/eltext Parallele E/A auf Clustern – Chemnitz 2001 Lehrstuhl für Betriebsysteme

68 MPI_File_write_at_all()
BTIO – full MPI-IO (3) MPI_File_write_at_all() MPI-IO-Trace: kompletter Compute-IO-Zyklus Parallele E/A auf Clustern – Chemnitz 2001 Lehrstuhl für Betriebsysteme

69 BTIO – full MPI-IO (4) MPI-IO-Trace: Beginn der IO-Phase
Parallele E/A auf Clustern – Chemnitz 2001 Lehrstuhl für Betriebsysteme

70 Parallele E/A via SCI SCI – Scalable Coherent Interface
Beschränkungen von E/A in verteilten Systemen „shared state“ Konzept Festes Striping: einfach, aber nicht immer optimal SVM-Prinzip: zu langsam, wenn Nachrichtenbasiert Aufbau & Potential Parallele E/A auf Clustern – Chemnitz 2001 Lehrstuhl für Betriebsysteme

71 Scalable Coherent Interface – Übersicht
Protokoll für ein speicherkoppelndes Verbindungsnetz eigener 64-bit Adressraum optional: effiziente, verteilte Cache-Kohärenz kein Bus - aber bietet Bus-typische Dienste flexibel skalierbar transparent für Ziel und Quelle Standard seit 1992 (IEEE ) Parallele E/A auf Clustern – Chemnitz 2001 Lehrstuhl für Betriebsysteme

72 Scalable Coherent Interface – Topologien
Punkt-zu-Punkt Verbindungen zwischen „Mini-Switches“ Mögliche Topologien: Parallele E/A auf Clustern – Chemnitz 2001 Lehrstuhl für Betriebsysteme

73 Scalable Coherent Interface - Implementation
Integrierte Systeme PCI-SCI Adapter: 64-bit 66 MHz PCI-PCI Bridge Leistungseckdaten: Datum schreiben 1,5 us Datum lesen 3,2 us Bandbreite PIO > 170 MB/s (90 % Peakbandbreite bei 512byte Transfer) DMA > 250 MB/s Synchronisation ~ 15 us Remote Interrupt ~ 30 us Parallele E/A auf Clustern – Chemnitz 2001 Lehrstuhl für Betriebsysteme

74 E/A in Distrib. Memory Systemen
Zugriffsmuster: Häufig: synchroner Zugriff aller Prozesse EIN Prozess kann Plattensystem ausnutzen 1:1 Verhältnis CPU/Plattensystem Verhältnis der Bandbreiten Netz vs. Platten Netz: feste max. Bandbreite > Plattenbandbreite Aber: (lokale) Plattenbandbreite skalierbar & deterministisch i.d.R. zu wenig E/A-Knoten, um jeden Compute-Knoten zu sättigen soviel lokale E/A wie möglich ! Parallele E/A auf Clustern – Chemnitz 2001 Lehrstuhl für Betriebsysteme

75 Shared State: Hintergrund
Maximierung der E/A-Lokalität durch Migration der Daten SVM/DSM-Prinzip Probleme: Wo ist ein Datum? Synchronisation? Generischer Kommunikationsansatz: Nachrichtenaustausch Mögliche Kommunikation mit SCI: gemeinsamer Speicher (Datei)zustand global sichtbar, somit: individuell lesbar / veränderbar Parallele E/A auf Clustern – Chemnitz 2001 Lehrstuhl für Betriebsysteme

76 Shared State: Prinzip globale Hashtabelle lokale Kopien
Synchronisation über gemeinsamen Speicher Thread für Datentransport Server-Side Cache im FS oder: RawIO in Zielpuffer Eigenschaften: volles Caching Maximale Lokalität bei festem Aufwand Schnelle Kommunikation Parallele E/A auf Clustern – Chemnitz 2001 Lehrstuhl für Betriebsysteme

77 Shared State: Lesezugriff
Lokalität bestimmen: Welcher Teil der Daten ist In meinem Besitz? Lesezugriffe absetzen Im lokalen Cache? Kopieren Nicht lokal vorhanden? Siehe 2. Entfernte Daten anfordern: Hashwert bestimmen In lokaler Hashtabelle suchen – gefunden? Ja: ohne Lock global verifizieren – o.k.? Sonst s. ‚Nein‘ Nein: in globaler Hashtabelle suchen: - Leselock auf Hash-Entry setzen - Start-hnode finden & hnode-Kette aufbauen (beim Suchen hnodes in lokale Hashtabelle kopieren) Daten anfordern ! Daten in lokalem Speicher cachen Parallele E/A auf Clustern – Chemnitz 2001 Lehrstuhl für Betriebsysteme

78 Shared State: Schreibzugriff
Lokalität bestimmen: Welcher Teil der Daten ist In meinem Besitz? asynchrone Schreibzugriffe absetzen Im lokalen Cache oder nicht lokal vorhanden? Siehe 2. Entfernte Daten invalidieren: asynchronen Schreibzugriff in lokale Datei absetzen Gleichzeitig: hnode-Kette aufbauen (wie beim Lesen) ggf. ersten und letzten hnode aufteilen Schreibanforderung setzen (Schreiblock!) Existierende Kopien invalidieren: Aktuellem Besitzer der Daten: Invalidate schicken dieser invalidiert alle weiteren Kopien Auf Invalidate-Bestätigungen und Schreibvorgang warten Lokale & Globale Hashtabelle aktualisieren Parallele E/A auf Clustern – Chemnitz 2001 Lehrstuhl für Betriebsysteme

79 Zusammenfassung Parallele E/A auf Clustern:
Probleme sind identisch zu MPP Systemen: Größe und Synchronität der Datenzugriffe, Verfügbarkeit Lösungsmöglichkeiten sind anders: Plattenkapaziäten wachsen schnell Günstige RAID-Lösungen werden Standard Hohe knoten-lokale E/A-Kapazität Neue Möglichkeiten, neue Probleme Kommerzielle Lösungen verfügbar – aber: Lösungen immer problemspezifisch !? Parallele E/A auf Clustern – Chemnitz 2001 Lehrstuhl für Betriebsysteme

80 Quellen John M. May: Parallel I/O for High Performance Computing. Academic Press, 2001 B. Nitzberg and S. Fineberg: Parallel I/O Tutorial. Supercomputing ’95 Dokumente der SIO (Scalable IO) Initiative Veröffentlichungen von Sun, SGI, Intel Sandia National Labs PVFS Manuals und Publikationen ... weitere auf Anfrage Parallele E/A auf Clustern – Chemnitz 2001 Lehrstuhl für Betriebsysteme

81 Fragen, Bemerkungen, Widerspruch !
Nun bitte... Fragen, Bemerkungen, Widerspruch ! Parallele E/A auf Clustern – Chemnitz 2001 Lehrstuhl für Betriebsysteme

82 Einleitung Cluster Parallele vs. Verteilte E/A Was sind Cluster ?
Warum nicht NFS ? Was macht parallele E/A cluster-spezifisch ? Parallele E/A auf Clustern – Chemnitz 2001 Lehrstuhl für Betriebsysteme

83 Anwendungen paralleler E/A
Anwendungsfelder Anforderungen an E/A Anwendungsfälle und -beispiele Parallele E/A auf Clustern – Chemnitz 2001 Lehrstuhl für Betriebsysteme

84 „Single IO Space“ (SIOS)
Parallele E/A auf Clustern – Chemnitz 2001 Lehrstuhl für Betriebsysteme


Herunterladen ppt "Parallele E/A auf Clustern"

Ähnliche Präsentationen


Google-Anzeigen