Multicore-Programmierung (Multicore Programming) (WS16/17)
Course Overview
The lecture comprises an introduction to the architecture of multicore processors, programming models for multicore programming, and the programming with threads. Different languages and library-based approaches for thread-programming are covered.
Prerequisites: programming in C; basic knowledge of computer architecture
Suggested Literature
- Parallel Programming for Multicore and Cluster Systems 2nd Edition von Thomas Rauber und Gudula Rünger, Springer-Verlag, 2013
- Parallele Programmierung von Thomas Rauber und Gudula Rünger 3. Auflage , Springer-Verlag 2012
- Multicore: Parallele Programmierung von Thomas Rauber und Gudula Rünger, Springer-Verlag 2007
- Intel Threading Building Blocks: Outfitting C++ for Multi-Core Processor Parallelism von J. Reinders, OReilly-Verlag 2007
- The Art of Multiprocessor Programming von Maurice Herlithy und Nir Shavir, Elsevier-Verlag, 2008
Task Sheets
- C Introduction
- Task sheet 1
- Task sheet 2
- Task sheet 3
- Task sheet 4
- Task sheet 5
- Theory part: OpenMP Task Programming
- Programming notes
- Task sheet 6, dining_phils.c
- Task sheet 7
- Task sheet 8
- Task sheet 9
- Task sheet 10
- Task sheet 11
- Task sheet 12
- Tables for the cache strategies
- Solution sketches for programming tasks
- Solution sketches for cuda programming tasks
You can submit your homework via OPAL.
Lecture Slides
- Part 1: Introduction
- Part 2: OpenMP Programming (Date: 3. Nov 2016 changelog)
- Part 3: PThread Programming (Date: 28. Nov 2016 changelog)
- Part 4: Loop Scheduling (Date: 9. Dec 2016 changelog)
- Part 5: Caches and Memory Hierarchies (Date: 13. Dec 2016 changelog)
- Part 5: GPU-Programming (Date: 19. Jan 2017 changelog)