Informatik

Mit den Schwerpunkten "Data Science & Analytics" oder "Advanced Software Engineering". Möglichkeit eines Master-Studiums parallel zu Job oder Familie

Modulhandbuch

 Zurück 

Parallel Computing

Empfohlene Vorkenntnisse

Vorlesung und Praktikum Software Engineering 1

Vorlesung und Praktikum Enterprise Anwendungen

Lehrform Vorlesung/Seminar
Lernziele / Kompetenzen

Lernziele:

  • Erfolgreiche Teilnehmer*innen kennen die Inhalte des Berufs des IT-Architekten und seine Rolle in Unternehmen.
  • Sie beherrschen Methoden, um komplexe Software-Strukturen in überschaubare Einheiten zu gliedern.
  • Anhand von Mustern und Basisarchitekturen haben die Studierenden die Lösungskompetenz für gängige Probleme beim Entwurf einer Systemarchitektur erworben.
Dauer 1
SWS 4.0
Aufwand
Lehrveranstaltung 60
Selbststudium / Gruppenarbeit: 90
Workload 150
ECTS 5.0
Voraussetzungen für die Vergabe von LP

Modulprüfung für "Software-Architekturen" (K60)
"Seminar Software-Architekturen" (RE)

Modulverantwortlicher

Prof. Dr. Joachim Orb

Max. Teilnehmer 15
Empf. Semester 1-2
Haeufigkeit jedes Jahr (WS)
Verwendbarkeit

Master-Studiengang INFM

Master-Studiengang WINM

Veranstaltungen

Praktikum Parallel Computing

Art Praktikum
Nr. EMI2113
SWS 2.0
Lerninhalt

Entwurf und Implementierung paralleler Algorithmen und Synchronisationsmechanismen

- auf Standardhardware in einer geläufigen Programmiersprache (Java)

- auf Spezialhardware (GPUs) mit Hilfe eines spezifischen parallelen Programmiermodells (CUDA)

 

Literatur

Oechsle, R., Parallele und verteilte Anwendungen in Java, 3. Auflage, Hanser 2011
Goetz, B. et al., Java Concurrency in Practice, Addison-Wesley Longman, 2006
Cook, S., CUDA Programming: A Developer's Guide to Parallel Computing with GPUs, Morgan Kaufman, 2012
Kirk, D., Hwu, W., Programming Massively Parallel Processors, Morgan Kaufman, 2010

Parallel Computing

Art Vorlesung
Nr. EMI2112
SWS 2.0
Lerninhalt

Die Vorlesung befasst sich mit parallelen Algorithmen und deren Programmierung sowohl auf Standard-Multicore-Rechnern als auch auf Spezialhardware (GPUs). Nach einer Vertiefung der Grundkenntnisse in nebenläufiger Programmierung (Multithreading) werden erweiterte Synchronisationsmechanismen behandelt. Anhand diverser Beispiele werden die Teilnehmer in die Theorie und Praxis paralleler Algorithmen eingeführt. Dabei werden auch die Möglichkeiten und Grenzen der Beschleunigung von Programmen durch Parallelisierung erörtert.


Themen:

  • Parallelität und Nebenläufigkeit (Hardware- und Software-Aspekte)
  • Threadsicherheit und Synchronisation (Konkurrenz und Kooperation, Race-Conditions, Deadlocks atomare Operationen, Barrieren, etc.)
  • Aufbau (teil-)parallelisierter Anwendungen: Tasks vs. Threads, Thread-Pools, Executor-Framework, Fork/Join-Framework
  • Parallele Rechenmodelle (PRAM-Architektur, SIMD vs. MIMD, Speichermodelle)
  • Parallele Algorithmen (Array-Scan, Merge-Sort, Quicksort, Editierdistanz, paralleles Maximum, parallele Präfixsumme, paralleles Merging)
  • Analyse paralleler Algorithmen: Zeitkomplexität, Prozessorkomplexität, Work-Komplexität, Work-Optimalität
  • Möglichkeiten und Grenzen der Beschleunigung durch Parallelisierung (Amdahl'sches Gesetz, Gustafson'sches Gesetz)
  • Massiv parallele Architekturen und ihre Programmierung am Beispiel von GPUs (Grafikkarten)

 

Literatur

Oechsle, R., Parallele und verteilte Anwendungen in Java, 3. Auflage, Hanser 2011
Goetz, B. et al., Java Concurrency in Practice, Addison-Wesley Longman, 2006
Cook, S., CUDA Programming: A Developer's Guide to Parallel Computing with GPUs, Morgan Kaufman, 2012
Kirk, D., Hwu, W., Programming Massively Parallel Processors, Morgan Kaufman, 2010

 Zurück