Seminar Effiziente Programmierung und Ein-/Ausgabe

Die optimale Nutzung moderner Rechnerarchitekturen ist keine einfache Aufgabe, weshalb Wissenschaftlerinnen und Wissenschaftler bei der Entwicklung effizienter Anwendungen vor immer neue Herausforderungen gestellt werden. Insbesondere die Ein-/Ausgabe stellt dabei häufig einen Flaschenhals dar. Für die effiziente Programmierung ist daher ein tiefgehendes Verständnis der Hard- und Softwareumgebung sowie möglicher Ursachen für Leistungsprobleme unabdingbar.

Im Seminar geht es um die effiziente Programmierung und Ein-/Ausgabe im weiteren Sinne. Dazu gehören sowohl die eigentliche Entwicklung effizienter Anwendungen als auch deren Debugging und Leistungsanalyse. Dabei sollen Informationen zu verschiedenen Themen recherchiert und anhand von konkreten Beispielen präsentiert werden. Es können beispielsweise Compileroptimierungen, Werkzeuge für das Debugging und die Leistungsanalyse, Ansätze zur Datenreduktion sowie wissenschaftliche Publikationen zu aktuellen Forschungsfragen vorgestellt werden.

Veranstaltungsdaten

Lernziel

Die Teilnehmenden lernen, ein gegebenes Thema selbstständig zu erarbeiten und den anderen Teilnehmenden in verständlicher Weise zu präsentieren.

Voraussetzungen

Empfohlene Vorkenntnisse:

  • Grundlegende Programmierkenntnisse
  • Kenntnis der Grundmechanismen von Betriebssystemen (z. B. Technische Informatik)
  • Grundkenntnisse in Rechnerarchitekturen sowie Algorithmen und Datenstrukturen

Zeitplan der Vorlesung

  • 12.10.2021: Einführung (Folien)
  • 19.10.2021: TBD
  • 26.10.2021: TBD
  • 02.11.2021:
    • Programmiersprachen
    • Aktuelle Speichertechnologien - Jo Leon Ulrich (Betreuerin: Kira Duwe)
  • 09.11.2021:
    • Compiler - Hannes Winkler (Betreuer: Michael Blesel)
    • Dateisysteme - Malte Speidel (Betreuerin: Kira Duwe)
  • 16.11.2021:
    • Kompression - Yolanda Thiel (Folien) (Betreuerin: Kira Duwe)
    • Energieeffizienz
  • 23.11.2021:
    • Rust - David Hausmann (Betreuer: Michael Blesel)
    • Julia - Felix Bernhardt (Betreuer: Michael Kuhn)
  • 30.11.2021:
    • Selbstbeschreibende Datenformate - Timm Erxleben (Betreuerin: Kira Duwe)
    • DAOS - Erik Kayatz (Folien) (Betreuer: Michael Kuhn)
  • 07.12.2021:
    • Debugging - Jan-Phillip Oelze (Betreuer: Michael Blesel)
    • Speicheroptimierungen in C - Bastian Zumbusch (Betreuer: Michael Blesel)
  • 14.12.2021:
    • Grundlagen von Parallelismus und Nebenläufigkeit - Fabian Schröder (Betreuer: Michael Blesel)
    • Fehlerquellen von Parallelismus und Nebenläufigkeit - Victor Bremer (Betreuer: Michael Kuhn)
  • 11.01.2022:
    • Grundlagen der Leistungsanalyse - Silas Reschke (Betreuer: Michael Kuhn)
    • Werkzeuge zur Leistungsanalyse - Kevin Kulot (Betreuer: Michael Blesel)
  • 18.01.2022:
    • Zukünftige Speichertechnologien - Dominic Seidel (Betreuerin: Kira Duwe)
    • Verlustbehaftete Datenreduktion - Benjamin Junge (Betreuerin: Kira Duwe)
  • 25.01.2022:
    • Tests - Mauricio Soltmann (Betreuer: Michael Blesel)
    • Continuous Integration/Deployment - Elisabeth Friedemann (Betreuer: Michael Kuhn)

Last Modification: 01.03.2022 - Contact Person: Webmaster