Covers the basics of parallel programming, including concurrency, forms of parallelism, synchronization, and programming models like PThreads and OpenMP.
Explores memory consistency, coherence, weak consistency, and sequential consistency, emphasizing the importance of language-level consistency and data race-free programming.
Explores parallelism in programming, emphasizing trade-offs between programmability and performance, and introduces shared memory parallel programming using OpenMP.
Explores memory consistency in multiprocessor systems, discussing coherence, consistency models, and the trade-offs between ordering constraints and performance.
Explores memory consistency, cache coherence, and relaxed models in modern CPUs, emphasizing the balance between strict ordering and flexible memory operations.
Explores the concept of locking for mutual exclusion in OS, covering race conditions, parallelism, atomic instructions, deadlock prevention, and best practices.