Programmierung Paralleler und Verteilter Systeme 2022
Prof. Dr. Andreas Polze
Sven Köhler, Lukas Wenzel, Jossekin Beilharz, Daniel Richter, Robert Schmid
Termine: montags, 13:30-15:00 Uhr; mittwochs, 11:00-12:30 Uhr
Ort: HS3 oder Zoom (668 3017 5448 | 75226074)
Rechensysteme erleben einem steten Wandel: Nach zentralisierten und geteilten Mainframes kamen getrennte, aber exklusiv genutzte PCs, und anschließend wieder mandantentaugliche, weitverteilte Systeme in der Cloud. Damit ändert sich wie wir Software entwickeln müssen. Dabei gewinnt die Softwarezuverlässigkeit an größerer Bedeutung, um durch die Abstraktionen und Nicht-Determinismus entstehende Komplexität zu bewältigen.
Zeitgleich ändert sich aufgrund physikalischer Limits die unterliegende Hardware zu immer mehr massiv parallelen Architekturen, die von uns ein Umdenken unserer Annahmen verlangen, wie z.B. die Befehlsabarbeitung oder wie Speicher funktioniert.
In dieser Vorlesung lernen Sie:
- Cloud-, verteilte und parallele Systeme zu nutzen, zu programmieren, zu evaluieren und zu vergleichen
- Zuverlässigkeit und Fehlertoleranz im Software Engineering einzusetzen
- Einflussfaktoren von Hardwarearchitekturdetails zu erkennen und in der Programmierung einzuplanen
- Den Energieverbrauch von Software zu messen und zu steuern
Übungen
Diese Vorlesung umfasst mehrere praktische Übungen. In den Übungen lernen Sie die in der Vorlesung eingeführten Technologien und Konzepte zu nutzen und zu evaluieren.
Alle Abgaben erfolgen über unser Abgabesystem auf osm.hpi.de/submit, wo sie automatisch validiert werden.
Termine & Inhalte
Wir haben ein gemeinsames Projekt dieses Semester: Wissen in euren Kopf bekommen.
Aber wie in jedem guten Softwareprojekt, hakt es meist im Deployment. Und manchmal machen auch Dozierende Fehler. Aber das ist okay.
Legt bitte eine Issue an und helft uns das Problem zu beheben.
- Etwas nicht verstanden? Issue!
- Da könnte ein Fehler in den Slides/Videos sein? Issue!
- Hausaufgaben unklar? Issue!
Alle anderen Teilnehmenden des Projekts sind eingeladen die Issue mitzuschließen.
Wenn du, als Issue Reporter, die Antwort hilfreich fandest, kannst du anderen helfen den zugehörigen Thread zusammenzufassen und einen Wikiartikel aufzuschreiben. Auf diese Art bekommen die anderen Studierenden eine klare, knappe Antwort sollte das Problem nochmal auftreten.
Cloud Computing
[Folien: Cloud & Virtualization]
Assignment 01: myc(s)t (due 2021-05-13)
Verlässlichkeit
Komponentenprogrammierung
Programmierung paralleller, enggekoppelter Systeme
Parallele Hardware
Beschleuniger
Energie & Profiling
Leistungserfassung
Die Endnote wird in einer abschließenden mündlichen Prüfung (30 Minuten, Einzelprüfung) ermittelt.
Die Prüfungen werden voraussichtlich im September stattfinden.