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

Cloud Computing

Mi, 04.05. Keine Vorlesung (Dies Academicus)

Verlässlichkeit

Komponentenprogrammierung

Programmierung paralleller, enggekoppelter Systeme

Mo, 06.06. Keine Vorlesung (Pfingstmontag)

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.