Seminar „Effiziente Programmierung“

Beschreibung

In diesem Seminar geht es um die effiziente Programmierung im weiteren Sinne. Dazu gehören sowohl die eigentliche Entwicklung und das Debugging aber auch der Energieverbrauch und die Laufzeit des Programms. Dabei sollen Informationen zu den verschiedenen Themen recherchiert werden und anhand von konkreten Beispielen dargestellt werden. Es können auch die Ergebnisse kleiner vergleichender Untersuchungen zur Auswirkung verschiedener Konstrukte und Methoden gezeigt werden.

Beachten Sie auch unsere allgemeinen organisatorischen Hinweise zu Seminaren.

Zielgruppe

Das Projekt eignet sich für Studierende der Informatik in den Diplom- und Bachelorstudiengängen. Studierende anderer Studiengänge müssen die Anrechnung mit dem jeweiligen Prüfungsausschuss klären.

Interessierte Zuhörer sind auch herzlich willkommen.

Daten der Veranstaltung

Zeit Donnerstag, 10–12 Uhr
Ort DKRZ, Raum 034
Mailingliste EP-1718

Dozenten

Themen

  • Modularisierung z. B. mit Shared Libraries 1)
  • Optimizing nested loops for optimal vectorization 2)
  • Optimal parallelization strategies of nested loops (OpenACC) 3)
  • Netzwerkkommunikation 4)

Zeitplan

Bei einem allgemeinen Einführungstermin werden Grundlagen vermittelt und die Themen zugewiesen. Nach der Festlegung der Themen soll der Inhalt mit dem jeweiligen Betreuer diskutiert werden.

  • 19.10. Einführung Folien
  • 26.10. Fällt aus
  • 02.11. Fällt aus
  • 09.11.
  • 16.11. (Raum 023)
    • Fällt aus
  • 23.11. (09:45–12:00)
    • Energy efficiency – Willy Kah Folien 7)
    • Profiling in Python – Jan Pohlmann Folien 8)
  • 30.11. (Raum 023)
    • Machine Learning – Kevin Malinowski Folien 9)
    • Statische Analyse 10)
  • 07.12.
    • Code Review – Jan Ole Wellnitz Folien 11)
    • Test-Driven Development – Meik Dachs 12)
  • 14.12.
    • Debugging im Linux-Kernel – Marc David 13)
    • Effiziente Synchronisations- und Sperrverfahren – Harry Flohr 14)
  • 21.12.
    • Optimizing caching on GPUs 15)
    • Memory management and optimizations – Tim Wischhof Folien 16)
  • 11.01.
    • Statische Code-Optimierung mit LLVM und Polly – Kim Wittenburg Folien17)
    • Abstract cost functions 18)
  • 18.01. (09:45–12:00)
    • zram – RAM-Kompression – Benjamin Warnke Folien 19)
    • Kompression – Tim Kilian Folien 20)
    • Performance Tools – Tim Jammer Handout 21)
  • 25.01. (09:45–12:00)
  • 01.02.
    • Effiziente Netzwerkkommunikation – Lars Thoms Folien 26)
    • Hauke Schmidt 27)

Literaturhinweise

1) , 12) , 27)
Jakob Lüttgau
2) , 3) , 15)
Nabeeh Jumah
4) , 5) , 6) , 8) , 10) , 19) , 26)
Michael Kuhn
7) , 23)
Yevhen Alforov
9) , 20) , 22)
Anastasiia Novikova
11) , 13) , 14)
Anna Fuchs
16)
Kira Duwe
17) , 18) , 21)
Jannek Squar
24) , 25)
Philipp Neumann