Explores GPUs' architecture, CUDA programming, image processing, and their significance in modern computing, emphasizing early start and correctness in GPU programming.
Explores memory consistency, coherence, weak consistency, and sequential consistency, emphasizing the importance of language-level consistency and data race-free programming.
Explores memory consistency, cache coherence, and relaxed models in modern CPUs, emphasizing the balance between strict ordering and flexible memory operations.
Explores memory consistency, weak consistency, and language-level guarantees in memory ordering, emphasizing the importance of data race free programming.
Explores parallelism in programming, emphasizing trade-offs between programmability and performance, and introduces shared memory parallel programming using OpenMP.