Table of Contents
Vorlesung „Hochleistungs-Ein-/Ausgabe“
Beschreibung
Hochleistungsrechnen ist eine wichtige Technik der Informatik, mit deren Hilfe in den Natur- und Ingenieurwissenschaften neue Erkenntnisse gewonnen werden. Insbesondere die durch das Hochleistungsrechnen ermöglichte computergestützte Simulation wird neben der Theorie und dem Experiment zum dritten Standbein vieler Wissenschaften. Neue Einsichten z. B. im Bereich der Klimaforschung, der Bioinformatik, der Teilchenphysik und des Automobilbaus werden durch Simulationen computerbasierter Modelle gewonnen und sind ohne Hochleistungsrechnen schon seit vielen Jahren nicht mehr möglich.
Ein zunehmend wichtiger Aspekt ist dabei die Ein-/Ausgabe von Daten, die einen signifikanten Einfluss auf die Gesamtleistung der Anwendungen haben kann. Die unterschiedlichen Entwicklungsgeschwindigkeiten der Prozessoren auf der einen Seite und der Speicherhardware auf der anderen Seite führen zu einem Ungleichgewicht der Leistungsfähigkeit dieser Komponenten. Gepaart mit den immer größer werdenden Datenmengen (Big Data) ist es notwendig sich intensiv mit der Hochleistungs-Ein-/Ausgabe zu beschäftigen um künftigen Anforderungen gerecht werden zu können.
In der Vorlesung werden die Grundlagen der Ein-/Ausgabe im Hochleistungsrechnen gelehrt; die Übungen dienen der praktischen Anwendung und Umsetzung der erworbenen Kenntnisse.
Im Rahmen der Vorlesung wird der komplette Ein-/Ausgabe-Stack betrachtet: Speichergeräte und -netze (Festplatten, Solid-State-Laufwerke, Storage Area Networks etc.), lokale und verteile Dateisysteme (im Kernel und auf Anwendungsebene, neuartige Konzepte wie Snapshots und Deduplizierung) und die darauf aufsetzenden E/A-Schnittstellen (POSIX, MPI-IO, NetCDF, ADIOS). Zusätzlich werden Gründe und Lösungsansätze für Leistungsprobleme diskutiert und alternative Ansätze für die Ein-/Ausgabe (wie z.B. Cloud-Schnittstellen) vorgestellt. Beispiele und Probleme werden im Kontext realer wissenschaftlicher Anwendungen aus dem Bereich der Erdsystemforschung motiviert.
Zielgruppe
Die Vorlesung eignet sich für Studierende der Informatik und Bioinformatik im Masterstudiengang.
Empfohlene Vorkenntnisse:
- Praktische Kenntnis einer Programmiersprache und die Fähigkeit, einfache Programme zu erstellen
- Kenntnis der Grundmechanismen von Betriebssystemen
- Grundkenntnisse des Hochleistungsrechnens
Lernziel
Die Teilnehmer werden in die Lage versetzt, die Ein-/Ausgabe paralleler Programme mit verschiedenen Programmierkonzepten umzusetzen und im Ablauf zu optimieren.
Daten der Veranstaltung
Dozenten
- Prof. Dr. Michael Kuhn (Ansprechpartner)
Zeitplan und Materialien
Themenplan
- 13.04. Speichergeräte und -verbünde Folien
- 20.04. Dateisysteme Folien
- 27.04. Fällt aus
- 04.05. Moderne Dateisysteme Folien
- 11.05. Parallele verteilte Dateisysteme Folien
- 18.05. MPI-IO Folien
- 01.06. Bibliotheken Folien
- 08.06. Optimierungen Folien
- 15.06. Grid, Cloud und Peer to Peer Folien
- 22.06. Leistungsanalyse Folien
- 29.06. OrangeFS Folien
- 06.07. Nachbesprechung
Übungen
- 11.04. Einführung Übungsblatt 0 Übungsblatt 1
- 17.04. E/A-Werkzeuge Übungsblatt 2
- 23.04. Dummy-FUSE-Dateisystem Übungsblatt 3
- 01.05. Memory-FUSE-Dateisystem Übungsblatt 4
- 08.05. Dateisystem-Design Übungsblatt 5 Übungsblatt 6
- 12.06. Nicht-zusammenhängende und kollektive E/A Übungsblatt 7
- 19.06. OrangeFS und Darshan Übungsblatt 8