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

  • 13.10.2022: Einführung
  • 20.10.2022: TBD
  • 27.10.2022: TBD
  • 03.11.2022
    • Aktuelle Speichertechnologien
    • Dateisysteme
  • 10.11.2022
    • Programmiersprachen
    • Compiler
  • 17.11.2022
    • Kompression
    • Energieeffizienz
  • 24.11.2022
    • Rust
    • Julia
  • 01.12.2022
    • Selbstbeschreibende Datenformate
    • DAOS
  • 08.12.2022
    • Debugging
    • Speicheroptimierungen in C
  • 15.12.2022
    • Grundlagen von Parallelismus und Nebenläufigkeit
    • Fehlerquellen von Parallelismus und Nebenläufigkeit
  • 12.01.2023
    • Grundlagen der Leistungsanalyse
    • Werkzeuge zur Leistungsanalyse
  • 19.01.2023
    • Zukünftige Speichertechnologien
    • Verlustbehaftete Datenreduktion
  • 26.01.2023
    • Tests
    • Continuous Integration/Deployment

Last Modification: 27.09.2022 - Contact Person: Webmaster