Provides an overview of computer architecture, focusing on the von Neumann architecture and its components, including the CPU and memory management units.
Covers the principles of synchronization in parallel computing, focusing on shared memory synchronization and different methods like locks and barriers.
Explores parallelism in programming, emphasizing trade-offs between programmability and performance, and introduces shared memory parallel programming using OpenMP.
Explores the impact of locality on system design, discussing strategies to optimize efficiency and performance through data layout, lock design, and data movement minimization.
Covers the basics of parallel programming, including concurrency, forms of parallelism, synchronization, and programming models like PThreads and OpenMP.