Introduction to Parallelism

Modern processors are built for parallel execution, not sequential code. This course shows how to use multithreading and vectorization in C++ to match that reality.

4.8 (71 reviews)
1
Asynchronous Tasks with std::async
Offload heavy work to other CPU cores. Learn how std::async and std::future enable concurrent execution.
2
Parallel Algorithms and Execution Policies
Combine the elegance of C++20 Ranges with the power of parallel execution policies.
3
Locks and Atomics
Learn how mutexes and atomics prevent race conditions, and why hardware contention can make multithreaded code slower than single-threaded code.
4
Cache Coherency and False Sharing
Explore the performance cost of synchronization, how to mitigate it, and how to avoid it entirely with better algorithm design.
5
SIMD and Automatic Vectorization
Learn how SIMD registers allow you to process multiple data points in a single instruction, unlocking the full power of each CPU core.