Proseminar Mehrkern-Architekturen (IN0013)

This lecture will be held in German.

Veranstalter

Josef Weidendorfer, Carsten Trinitis

Mitwirkende/-r

Marcel MeyerTilman KüstnerDai Yang

Informationen aus TUMonline

ArtSeminar
SemesterSommersemester 2017
Stellung in StudienplänenSiehe TUMonline

Teilnahmekriterien & Anmeldung

Themen

Die behandelten Themen reichen von Hardware (Single-Core, Multi-Core) über parallele Programmiermodelle und -sprachen (Threads, OpenMP, Cilk, MPI, PGAS) bis zu Werkzeugen für die parallele Programmierung (Race-Erkennung, Leistungsanalyse). Abgerundet wird das Seminar durch das Thema "Beschleuniger", zu denen GPUs (CUDA/OpenCL) gehören.

  • Hardware: Single-Core Prozessoren, Multi-Core Prozessoren
  • Betriebssystem-Ebene: Prozesse, Threads, Zuordnung HW-Ressourcen
  • Grundlagen der parallelen Programmierung: Par. Programmiermodelle, Strukturen, Synchronisation, Wettlauf, Deadlock
  • Explizite Thread-Programmierung: Posix/Windows/C++ Threads
  • Implizite Thread-Nutzung: OpenMP, Cilk
  • Parallelisierung bei verteiltem Speicher: MPI, PGAS
  • Werkzeuge: Korrektheit (Debugging, Race-Erkennung), Leistungsanalyse
  • Beschleuniger und ihre Programmierung: Xeon Phi, GPUs, CUDA, OpenCL

Zeitplan

27.4. Dai Yang Einführung
4.5. (alle) Kurzvorträge
11.5. (--) (Entfallen)
18.5. Nöller Single-Core Prozessoren
18.5. Dietz Multi-Core Prozessoren
25.5. (--) (Christi Himmelfahrt)
1.6. Bodlée Systemsicht Threads/Scheduling
1.6. Deutrich Grundlagen der parallelen Programmierung
8.6. Fuchs Explizite Thread-Programmierung (1): Posix-Threads
8.6. Zbil Explizite Thread-Programmierung (2): C++/Java-Threads
15.6. (--) (Fronleichnam)
22.6. Pohle Implizite Thread-Programmierung (1): OpenMP
22.6. Gankin Implizite Thread-Programmierung (2): Cilk/Intel Cilk Plus
29.6. Schneider Programmierung paralleler Systeme (1): MPI
29.6. Junge Programmierung paralleler Systeme (2): PGAS (Chapel/GASPI)
6.7. Schwan Werkzeuge für parallele Programmierung (Debugging/Profiling)
6.7. Vollert Beschleuniger Many-Core (Intel Xeon Phi)
13.7. Nguyen GPU-Programmierung mit Direktiven: OpenACC/OpenMP4
13.7. Bartussek GPU-Programmierung: CUDA / OpenCL

Betreuerliste

Bartussek GPU-Programmierung: CUDA / OpenCL Josef Weidendorfer
Bodlée Systemsicht Threads/Scheduling Dai Yang
Deutrich Grundlagen der parallelen Progr. Dai Yang
Dietz Multi-Core Prozessoren Carsten Trinitis
Fuchs Expl. Threads (1): Posix-Threads Tilman Küstner
Gankin Impl. Threads (2): Cilk Josef Weidendorfer
Junge Progr. par.Systeme (2): PGAS Dai Yang
Nguyen GPU mit Direktiven: OpenACC/OpenMP4 Josef Weidendorfer
Nöller Single-Core Prozessoren Carsten Trinitis
Pohle Impl. Threads (1): OpenMP Marcel Meyer
Schneider Prog. par. Systeme (1): MPI Marcel Meyer
Schwan Werkzeuge Josef Weidendorfer
Vollert Beschleuniger (Intel Xeon Phi) Carsten Trinitis
Zbil Expl. Threads (2): C++/Java-Threads Tilman Küstner

Organisatorisches

  • [Neu] Vortragstechnik Folien
  • Inhalt des Kurzvortrags über ca. 3 Minuten (pro Thema):
    • Kurzbeschreibung Thema mit passendem Bild/Zeichnung/Diagramm
    • Einbettung ins Seminar: Wieso wichtig?
    • Vorschau Vortrag: Gliederung und Highlights
  • Besprechung mit Betreuer: es wird erwartet, sich selbständig mit dem Betreuer in Verbindung zu setzen: die Besprechung sollte Mitte/Ende April stattfinden, um den Kurzvortrag vorbereiten zu können. Inhalt der Besprechung: Literatur und Grobgliederung (für Ausarbeitung und eigentlichen Vortrag)
  • Ausarbeitung: ca. 8 Seiten, abzugeben als PDF unter Verwendung einer vorgegebenen Latex-Vorlage. Eine kurze, beispielhafte Einführung in Latex finden Sie in dieser Latex-Einführung. Eine erste Version spätestens (!) 2 Wochen vor Vortragstermin an den Betreuer schicken, sodass die finale Version etwa eine Woche vor Vortragstermin an alle Teilnehmer verschickt werden kann.
  • Vortragslänge: pro Vortragender 20 bis 25 (max!) Minuten