CPSC 543 - Multiprocessing and Concurrent Programming
- Instructor:
- Dr. Dylan Schwesinger
- Location:
- OM 158
- Meeting times:
- Wednesday 6:00pm – 8:50pm, OM 158
- Course Zoom Meeting ID:
- 956 7180 6122
- Office hours:
-
Monday 3:30pm – 5:30:00pm
- Tuesday and Thursday 9:30am – 11:00am
- Office hours Zoom meeting ID:
- 732 788 237
Course Description
This course explores the concepts and practices of creating software that makes effective use of modern multiple-processor computers. Emphasis is on partitioning program code and data for safe and efficient execution on multiple processors that share machine resources such as memory. Lab exercises include construction, execution and benchmarking of multithreaded programs on several multicore, multithreaded computers.
Prerequisite: Unconditional acceptance to the graduate program.
Course Information
- First Day Handout
- Class Handout Information
- CS&IT Documentation Standards
- CS&IT Academic Integrity Policy
Tentative Schedule
| Week | Text | Topics |
|---|---|---|
| 1 | Introduction | |
| 2 | Ch 1-3, 13 | Critical sections, locking, and condition variables |
| 3 | Ch 15-16 | Volatile and atomic variables, non-blocking synchronization |
| 4 | Ch 4 | Composing objects and thread safety |
| 5 | Ch 5 | Libraries |
| 6 | Ch 6 | Task Execution |
| 7 | Ch 7 | Cancellation and shutdown |
| 8 | Ch 8 | Thread pools |
| 9 | Parallelizing recursive algorithms | |
| 10 | Ch 9 | Threading issues in specific applications |
| 11 | Ch 10-11 | Avoiding liveness hazards |
| 12 | Ch 12 | Testing and benchmarks |
| 13 | Additional Topics | |
| 14-15 | Student presentations |