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


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