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.