M5: Concurrent Objects (Part 2) and Parallel Design¶
This fifth module we continue our discussion on concurrent objects by looking at concurrent based implementations of pool-based objects such as, queues, and stacks. We will also begin to look at ways to design parallel programs.
Pre-recorded Lectures¶
The pre-recorded lectures are available here: M5 Videos. You can also find the videos under the “Panopto” tab on the MPCS 52060 canvas site.
The lectures are a series of approx 5-20 minute videos divided into 5 sections:
5.0.1 - Introduction to Concurrent Pools
5.0.2 - Bounded & Lock-free Queues
5.1 - Lock Free Stack
5.2 - Initial Design Steps and Partitioning
5.3 - Functional Decomposition and Communication Factors
5.4 - Data Dependencies and Load Balancing
5.5 - Granularity and I/O
The slides/code presented in these videos are accessible in the upstream repository under the m5/resources
directory. Please reach out to me if you do not have access to this repository.
Resources/Readings¶
- The Art of Multiprocessor Programming readings:
Ch. 10.1,1.2,10.3,10.5,10.6
Ch. 11.1, 11.2
Synchronous Sessions¶
You will find the links to the Zoom sessions on Canvas. As a reminder here are the dates and times for the zoom session for this module:
- Dates/Times
Section 1: Thursday October 28th @ 4:00pm-5:20pm
- Discussion Outline
Profiling Go programs
Q&A on the pre-recorded lectures
Concurrent Hash tables (if time permits)
Assignment¶
Assignments are always due on Thursday evenings.
Project #1, due Friday May 7th at 11:59pm CDT