Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

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

Ähnliche Präsentationen


Präsentation zum Thema: "Parallele E/A auf Clustern Joachim Worringen Lehrstuhl für Betriebssysteme RWTH Aachen."—  Präsentation transkript:

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

2 Parallele E/A auf Clustern – Chemnitz 2001Lehrstuhl für Betriebsysteme 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

3 Parallele E/A auf Clustern – Chemnitz 2001Lehrstuhl für Betriebsysteme 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

4 Parallele E/A auf Clustern – Chemnitz 2001Lehrstuhl für Betriebsysteme 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

5 Parallele E/A auf Clustern – Chemnitz 2001Lehrstuhl für Betriebsysteme 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

6 Parallele E/A auf Clustern – Chemnitz 2001Lehrstuhl für Betriebsysteme 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

7 Parallele E/A auf Clustern – Chemnitz 2001Lehrstuhl für Betriebsysteme 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

8 Parallele E/A auf Clustern – Chemnitz 2001Lehrstuhl für Betriebsysteme 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 !

9 Parallele E/A auf Clustern – Chemnitz 2001Lehrstuhl für Betriebsysteme 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 Datenrate: Nach einer Woche: 120 TB Problem: Daten sind verteilt Datenausgabe nicht kontinuierlich

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

11 Parallele E/A auf Clustern – Chemnitz 2001Lehrstuhl für Betriebsysteme E/A-Anforderungen: Entwicklung (2) 5 Jahre später – neuer Rechner: F = 10 TFLOP/s (60% pro Jahr) entsprechend: C total = 200 TB Mit C disk = 1200 GB und R disk = 100 MB/s: R total = 166 * R disk = 16,6 GB/s F / R total = 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

12 Parallele E/A auf Clustern – Chemnitz 2001Lehrstuhl für Betriebsysteme 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

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

14 Parallele E/A auf Clustern – Chemnitz 2001Lehrstuhl für Betriebsysteme Striping Basisverfahren zur Bandbreitenerhöhung: Nutzung von N parallelen Speichersystemen bis zu N-fache Bandbreite Stripetiefe Stripefaktor

15 Parallele E/A auf Clustern – Chemnitz 2001Lehrstuhl für Betriebsysteme 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

16 Parallele E/A auf Clustern – Chemnitz 2001Lehrstuhl für Betriebsysteme 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

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

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

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

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

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

22 Parallele E/A auf Clustern – Chemnitz 2001Lehrstuhl für Betriebsysteme 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 ?

23 Parallele E/A auf Clustern – Chemnitz 2001Lehrstuhl für Betriebsysteme 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

24 Parallele E/A auf Clustern – Chemnitz 2001Lehrstuhl für Betriebsysteme 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

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

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

27 Parallele E/A auf Clustern – Chemnitz 2001Lehrstuhl für Betriebsysteme Sun PFS: Kennzeichen Client/Server Prinzip - 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

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

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

30 Parallele E/A auf Clustern – Chemnitz 2001Lehrstuhl für Betriebsysteme 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

31 Parallele E/A auf Clustern – Chemnitz 2001Lehrstuhl für Betriebsysteme 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

32 Parallele E/A auf Clustern – Chemnitz 2001Lehrstuhl für Betriebsysteme 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!

33 Parallele E/A auf Clustern – Chemnitz 2001Lehrstuhl für Betriebsysteme 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)

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

35 Parallele E/A auf Clustern – Chemnitz 2001Lehrstuhl für Betriebsysteme POSIX Standard-Unix-Dateioperationen: 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!

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

37 Parallele E/A auf Clustern – Chemnitz 2001Lehrstuhl für Betriebsysteme 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

38 Parallele E/A auf Clustern – Chemnitz 2001Lehrstuhl für Betriebsysteme 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...

39 Parallele E/A auf Clustern – Chemnitz 2001Lehrstuhl für Betriebsysteme 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...

40 Parallele E/A auf Clustern – Chemnitz 2001Lehrstuhl für Betriebsysteme 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 1Offset 2

41 Parallele E/A auf Clustern – Chemnitz 2001Lehrstuhl für Betriebsysteme MPI-IO: API – Individueller Zugriff Positionierung blockierend? Aufruf Lokaler Zeiger Expliziter Offset Gemeinsamer Zeiger blockierend nicht-blockierend blockierend nicht-blockierend blockierend nicht-blockierend 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

42 Parallele E/A auf Clustern – Chemnitz 2001Lehrstuhl für Betriebsysteme MPI-IO: API – Kollektiver Zugriff Positionierung blockierend? Aufruf Lokaler Zeiger Expliziter Offset Gemeinsamer Zeiger blockierend nicht-blockierend blockierend nicht-blockierend blockierend nicht-blockierend 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

43 Parallele E/A auf Clustern – Chemnitz 2001Lehrstuhl für Betriebsysteme Fallstudie: 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

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

45 Parallele E/A auf Clustern – Chemnitz 2001Lehrstuhl für Betriebsysteme 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

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

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

48 Parallele E/A auf Clustern – Chemnitz 2001Lehrstuhl für Betriebsysteme Fallstudie: PVFS 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

49 Parallele E/A auf Clustern – Chemnitz 2001Lehrstuhl für Betriebsysteme 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,...

50 Parallele E/A auf Clustern – Chemnitz 2001Lehrstuhl für Betriebsysteme 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!

51 Parallele E/A auf Clustern – Chemnitz 2001Lehrstuhl für Betriebsysteme 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

52 Parallele E/A auf Clustern – Chemnitz 2001Lehrstuhl für Betriebsysteme 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

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

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

55 Parallele E/A auf Clustern – Chemnitz 2001Lehrstuhl für Betriebsysteme BT: Ethernet vs. SCI

56 Parallele E/A auf Clustern – Chemnitz 2001Lehrstuhl für Betriebsysteme BTIO via NFS: IO-Bandbreite

57 Parallele E/A auf Clustern – Chemnitz 2001Lehrstuhl für Betriebsysteme BTIO via PVFS: IO-Bandbreite

58 Parallele E/A auf Clustern – Chemnitz 2001Lehrstuhl für Betriebsysteme BTIO – Caching in PVFS Vergleich: 512 MB/Knoten vs 256 MB/Knoten (full MPI-IO)

59 Parallele E/A auf Clustern – Chemnitz 2001Lehrstuhl für Betriebsysteme BTIO – Caching in PVFS Vergleich: 512 MB/Knoten vs 256 MB/Knoten (full MPI-IO)

60 Parallele E/A auf Clustern – Chemnitz 2001Lehrstuhl für Betriebsysteme 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: BTIO: PVFS-IO-Topologie (1)

61 Parallele E/A auf Clustern – Chemnitz 2001Lehrstuhl für Betriebsysteme BTIO: PVFS-IO-Topologie (2) 256 MB/Knoten (full MPI-IO)

62 Parallele E/A auf Clustern – Chemnitz 2001Lehrstuhl für Betriebsysteme 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)

63 Parallele E/A auf Clustern – Chemnitz 2001Lehrstuhl für Betriebsysteme 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

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

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

66 Parallele E/A auf Clustern – Chemnitz 2001Lehrstuhl für Betriebsysteme 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)

67 Parallele E/A auf Clustern – Chemnitz 2001Lehrstuhl für Betriebsysteme 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

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

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

70 Parallele E/A auf Clustern – Chemnitz 2001Lehrstuhl für Betriebsysteme 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

71 Parallele E/A auf Clustern – Chemnitz 2001Lehrstuhl für Betriebsysteme 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 )

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

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

74 Parallele E/A auf Clustern – Chemnitz 2001Lehrstuhl für Betriebsysteme 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 !

75 Parallele E/A auf Clustern – Chemnitz 2001Lehrstuhl für Betriebsysteme 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

76 Parallele E/A auf Clustern – Chemnitz 2001Lehrstuhl für Betriebsysteme 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

77 Parallele E/A auf Clustern – Chemnitz 2001Lehrstuhl für Betriebsysteme Shared State: Lesezugriff 1. Lokalität bestimmen: Welcher Teil der Daten ist In meinem Besitz? Lesezugriffe absetzen Im lokalen Cache? Kopieren Nicht lokal vorhanden? Siehe 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 ! 3. Daten in lokalem Speicher cachen

78 Parallele E/A auf Clustern – Chemnitz 2001Lehrstuhl für Betriebsysteme Shared State: Schreibzugriff 1. Lokalität bestimmen: Welcher Teil der Daten ist In meinem Besitz? asynchrone Schreibzugriffe absetzen Im lokalen Cache oder nicht lokal vorhanden? Siehe 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 3. Lokale & Globale Hashtabelle aktualisieren

79 Parallele E/A auf Clustern – Chemnitz 2001Lehrstuhl für Betriebsysteme 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 !?

80 Parallele E/A auf Clustern – Chemnitz 2001Lehrstuhl für Betriebsysteme 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

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

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

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

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


Herunterladen ppt "Parallele E/A auf Clustern Joachim Worringen Lehrstuhl für Betriebssysteme RWTH Aachen."

Ähnliche Präsentationen


Google-Anzeigen