Day 1:
- Modern multicore computer architecture and concurrency;
- Threading extensions in C++11 and newer;
- Locking done wrong and right;
- RAII and libguarded.
Day 2:
- OpenMP;
- Task and data parallelism;
- How to recognize concurrency opportunities;
- The Berkeley parallel pattern language;
- How to recognize and remedy parallelism blockers and data corrupters;
- Parallelism anti-patterns.
Day 3:
- Using Vectorization;
- Threadsafe API design;
- Threading libraries;
- “Effective Multicore”.
Every day has lectures and at least two larger supporting exercises.