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 |
|