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,stacks and concurrent hash tables. 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 Session (In-person)¶
As a reminder here are the dates and times for the synchronous session for this module:
- Dates/Times
Section 1: Wednesday April 27th @ 5:30pm-7:00pm
- Discussion Outline
Q&A on the pre-recorded lectures
Discuss structure of Midterm
SLURM Overview
Concurrent Hash tables
Profiling Go programs [if time permits]
Assignment¶
Assignments are always due on Thursday evenings (with the exceptions on some projects).
Project #1, due Thursday May 5th at 11:59pm CDT