Parallele E/A auf Clustern

Slides:



Advertisements
Ähnliche Präsentationen
Einer der Dienste im Internet
Advertisements

Kap. 7 Sortierverfahren Kap. 7.0 Darstellung, Vorüberlegungen
Wiederholung Betriebssystem bietet eine Abstraktion der Hardware an:
1 Was ist ein klassischer Prozess? A eine exe-Datei B log. Adressraum, Ablaufumgebung für genau einen Thread C log. Adressraum, Ablaufumgebung für eine.
Übersicht RAID-Verfahren Labor für Betriebsdatenverarbeitung
Virtual Storage Das Fundament für Total Enterprise Virtualization.
Basis-Architekturen für Web-Anwendungen
PC-Cluster.
Network-on-Chip basierende Laufzeitsysteme für dynamisch rekonfigurierbare Hardware Ronald Hecht Institut für Mikroelektrotechnik und Datentechnik Universität.
Dateisysteme Was sind Dateisysteme (Definition)
Enno Rehling und Roger Butenuth, Uni-GH Paderborn: Arminius: Software für Linux-basierte SCI-Cluster Arminius: Software für Linux-basierte SCI-Cluster.
SAP R/3 - Speichermanagement
Spezifikation der Module / Programme
Sortierverfahren Richard Göbel.
1 Named Pipes alias FIFO Haben einen Eintrag im Dateisystem und sind somit durch Zugriffsrechte identifizierbar Ermöglichen die Kommunikation zwischen.
OpenMP Präsentation im Rahmen des Seminars
Vorlesung: Betriebssysteme © 2002 Prof. Dr. G. Hellberg 1 Studiengang Informatik FHDW Vorlesung Betriebssysteme 1. Quartal 2002.
1 NetWork File System © April 2002, G. Hellberg Network File System Konfiguration und Einsatz.
2.5. Mikrocontroller-Komponenten
Technik Gestaltung Navigation Daten. Übersicht Client Webbrowser InternetServer.
Kap.6 Datenstruktur für Peripheriespeicher Kap.6.0 Plattenspeicher
XML in Client-Server und GRID Architektur
Vorlesung 3: Verschiedenes Universität Bielefeld – Technische Fakultät AG Rechnernetze und verteilte Systeme Peter B. Ladkin
AFS-Workshop 2005 Statusbericht Rechenzentrum TU Braunschweig
Datenmanagement in Sensornetzen PRESTO - Feedback gesteuertes Datenmanagement - SS 2007 Sören Wenzlaff.
Linux-HA-Cluster – Heartbeat mit DRBD
n4 Streaming Media System
Matrix Multiplication on CUDA
1 Vorlesung 3 Verschiedenes Peter B. Ladkin
Beschleunigung Virtueller Privater Netze durch Netzwerkprozessoren
Datenmodelle, Datenbanksprachen und Datenbankmanagementsysteme
Evaluierung des ITU-T.124 Telekonferenzstandards
Entwicklung verteilter eingebetteter Systeme - Einführung
Duo- und Quad Prozessor-Architektur
Bewertung von Cloud-Anbietern aus Sicht eines Start-ups
SKALIERBARE HARDWARE UNABHÄNGIGE LÖSUNGEN FÜR HSM, ARCHIVIERUNG UND SICHEREN DATENAUSTAUSCH YOUR DATA. YOUR CONTROL.
Stand: November Anforderungen an Systemumgebung und Hardware Anmerkung Gollas, Schulamt Freising: Für unsere Schulen kommt eine Mehrplatz Installation.
Backup und Recovery sehr großer Datenbanken
Entwicklung verteilter Anwendungen I, WS 13/14 Prof. Dr. Herrad Schmidt WS 13/14 Kapitel 4 Folie 2 Message Passing mittels Sockets (1) s.a.
GWDG – Kurs Parallelrechner-Programmierung mit MPI MPI Punkt-zu-Punkt-Kommunikation Oswald Haan
Saia® Systemkatalog Kapitel B2-Kommunikation & Interaktion
Dateisysteme Marcel Waldvogel. Marcel Waldvogel, IBM Zurich Research Laboratory, Universität Konstanz, , 2 Dateisysteme Was ist eine Datei?
Ein Leitfaden durch die Geschichte des Internets
Aichinger Christian, Strasser Jürgen. Inhalt JSF EJB Praxis - Integration.
Universität Zürich Informatikdienste GoKoordinatorenmeeting 27. April UZH Global Storage Projekt.
Warum gibt es Netzwerke?
ADAT©2010 Dipl. - Ing. Andrea SabinSeite: 1 Version 1.0c Adat Semester 1.
Systemsoftware und Betriebssysteme
Interprozess- kommunikation (IPC)
SSDs im SAN – Praxisbericht Teil2 Erich Eckel Österreichische Lotterien Storage Management.
SSDs im SAN - Praxisbericht Erich Eckel Österreichische Lotterien Storage Management.
Betriebssysteme Übung Tutorium „TLB & Virtual Memory“
Vs Objektpufferung (caching) = dynamische, ad-hoc-Replikation einer Primärkopie: Zugriffswilliger beschafft sich temporär eine lokale Kopie cache.
->Prinzip ->Systeme ->Peer – to – Peer
Clustering Clustering mit openMosix von Christian Wiese Stefan Krause.
7.2.4 Klassifikation mobilen Codes Nicht vergessen:  Sowohl das Fernkopieren als auch die Migration von Objekten setzt voraus, daß der Code entweder am.
Software-RAID-5 mit Windows 2000 Professional Projektarbeit 2003.
Webserver Apache & Xampp Referenten: Elena, Luziano und Sükran
Analyse und Umsetzung einer Filter-basierten Paketverarbeitungsmaschine für IP-Netzwerke Lehrstuhl für Systemarchitektur und Betriebssysteme Forschungs-
Spezifikation der Module / Programme
Vs Objektpufferung (caching) = dynamische, ad-hoc-Replikation einer Primärkopie: Zugriffswilliger beschafft sich temporär eine lokale Kopie cache.
LVM - Logical Volume Management unter Linux
SAN & NAS © Nicole Waibel Index NAS SAN Quellen
Prof. Dr. T. Kudraß1 Speicherverwaltung: Flash-Laufwerke.
RAID-Systeme - Standards - Leistungsmerkmal - Redundanz - Datensicherheit eine Präsentation von Jochen Throm an der Berufsakademie Mosbach.
Dr. Klaus Ruhlig Technology & Product Consulting Sun Microsystems, München Skalierbare Rechnerarchitekturen für ein DWH: Eine vergleichende Analyse.
Multiprocessing mit OpenMPI Marius Albath. Vorlesung Betriebssysteme, Was ist OpenMPI Was ist OpenMPI OpenMPI Standard Setup OpenMPI Standard.
Technische Universität München, Informatik XI Angewandte Informatik / Kooperative Systeme Verteilte Anwendungen: Einflußreiche Systeme Dr. Wolfgang Wörndl.
Vorgestern, gestern und heute
Shared Memory Programmierung: Grundlagen
 Präsentation transkript:

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

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

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

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

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

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

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

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

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

E/A-Anforderungen: Entwicklung (1) RAM-Kapazität: M / F ~ 0.5 ... 1 E/A-Kapazität: Ctotal / M ~ 10 ... 20 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

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

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

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

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

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

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

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

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

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

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

Distributed Memory (3) Homogene Universalknoten P Parallele E/A auf Clustern – Chemnitz 2001 Lehrstuhl 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 ? Parallele E/A auf Clustern – Chemnitz 2001 Lehrstuhl 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 Parallele E/A auf Clustern – Chemnitz 2001 Lehrstuhl 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 Parallele E/A auf Clustern – Chemnitz 2001 Lehrstuhl für Betriebsysteme

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

BTIO – simple MPI-IO (4) MPI-IO-Trace: Beginn der IO-Phase Parallele E/A auf Clustern – Chemnitz 2001 Lehrstuhl 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) Parallele E/A auf Clustern – Chemnitz 2001 Lehrstuhl 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 Parallele E/A auf Clustern – Chemnitz 2001 Lehrstuhl für Betriebsysteme

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

BTIO – full MPI-IO (4) MPI-IO-Trace: Beginn der IO-Phase Parallele E/A auf Clustern – Chemnitz 2001 Lehrstuhl 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 Parallele E/A auf Clustern – Chemnitz 2001 Lehrstuhl 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 1596-1992) Parallele E/A auf Clustern – Chemnitz 2001 Lehrstuhl für Betriebsysteme

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

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

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

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

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

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

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

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

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

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

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

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

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