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. Außerdem werden die internen Abläufe von Speicher- und Dateisystemen vermittelt und in den Übungen praktisch umgesetzt.
Daten der Veranstaltung
Dozenten
- Prof. Dr. Michael Kuhn (Ansprechpartner)
Zeitplan und Materialien
Themenplan
- 02.04. Speichergeräte und -verbünde Folien
- 09.04. Dateisysteme Folien
- 16.04. Moderne Dateisysteme Folien
- 23.04. Parallele verteilte Dateisysteme Folien
- 30.04. MPI-IO Folien
- 07.05. Bibliotheken Folien
- 14.05. Optimierungen Folien
- 21.05. Leistungsanalyse Folien
- 28.05. Datenreduktion Folien
- 04.06. Grid, Cloud und Peer to Peer (Raum 023) Folien
- 18.06. Fällt aus
- 25.06. Zukünftige Entwicklungen Folien
- 02.07. High Performance Computing, Big Data und Machine Learning Folien
- 09.07. Aktuelle Forschungsprojekte
Übungen
-
- Abgabe: 19.04., 10:00
- 16.04. E/A-Werkzeuge Übungsblatt 2 Materialien
- Abgabe: 26.04., 10:00
- 23.04. FUSE-Dateisystem Übungsblatt 3 Materialien
- Abgabe: 10.05., 10:00
- 07.05. Memory-FUSE-Dateisystem Übungsblatt 4 Materialien
- Abgabe: 17.05. und 31.05., 10:00
- 28.05. Design eines persistenten Dateisystems Übungsblatt 5
- Abgabe:
07.06.14.06., 10:00
- 04.06. Implementierung eines persistenten Dateisystems Übungsblatt 6 Materialien
- Abgabe: 05.07., 10:00
Links
Literatur
- High Performance Parallel I/O (Prabhat, Quincey Koziol); October 23, 2014 by Chapman and Hall/CRC; ISBN: 9781466582347
- Understanding the Linux Kernel (Daniel P. Bovet, Marco Cesati)
- Professional Linux Kernel Architecture (Wolfgang Maurer)