Slides will be uploaded the day after class

Unless explicitly mentioned, Readings will refer to The Art of Multiprocessor Programming, available online from the library

Module 1: Introduction, Background and ILP

Date Topic Slides Readings
Tues, March 30 Welcome! slides Overview page
Thurs, April 1 Arch and Compiler Background 1 slides Appendix B
Tues, April 6 Arch and Compiler Background 2 slides Appendix B
Thurs, April 8 Instruction Level Parallelism and C++ threads slides Class Slides

Module 2: Mutual Exclusion

Date Topic Slides Readings
Tues, April 13 Principles of Mutual Exclusion slides Chapter 2
Thurs, April 15 Mutual Exclusion in Practice 1 slides Chapter 7 - 7.5
Tues, April 20 Mutual Exclusion in Practice 2 slides Chapter 7.5 - end
Thurs, April 22 Specialized Mutual Exclusion slides Chapter 8

Module 3: Concurrent Data Structures

Date Topic Slides Readings
Tues, April 27 Principles of Concurrent Objects I slides Chapter 3
Thurs, April 29 Principles of Concurrent Objects II slides Chapter 3
Tues, May 4 Concurrent Linked-List Set slides Chapter 10
Thurs, May 6 Concurrent Queues slides Class Slides
Tues, May 11 Work Stealing slides Class Slides

Module 4: Reasoning about Concurrency

Date Topic Slides Readings
Thurs, May 13 Memory Consistency Models slides You Don’t Know Jack…
Tues, May 18 Barriers slides Chapter 17
Thurs, May 20 Guest Lecture by Hugues Evrard (Google) and Alastiar Donaldson (Imperial College London) Hugues, Alastair Class Slides
Tues, May 25 Forward progress slides Class Slides

Module 5: Advanced Topics

Date Topic Slides Readings
Thurs, May 27 GPU Programming 2 slides CUDA By Example Chapter 3-4
Tues, June 1 GPU Programming 1 slides CUDA By Example Chapter 1
Thurs, June 3 Distributed Computing Basics (by Reese)   Class Slides

Final

Our final is scheduled for Wednesday, June 9. If you would like to block off specific hours, our scheduled time is 4 PM to 7 PM