M4: Concurrent Objects (Part 1)

This fourth module provides an introduction to building higher-level concurrent objects. We will first start with learning about how we can build a concurrent linked list and then move on to other common data structures such as Queues and Stacks next week.

Pre-recorded Lectures

The pre-recorded lectures are available here: M4 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 4 sections:

  • 4.1 - Concurrent Objects and Concurrent Linked Lists Introduction

  • 4.2 - Coarse Grain Linked Lists

  • 4.3 - Fine Grain Synchronization

  • 4.4 - Optimistic Synchronization

The slides/code presented in these videos are accessible in the upstream repository under the m4/resources directory. Please reachout to me if you do not have access to this repository.

Resources/Readings

  • The Art of Multiprocessor Programming readings:
    • Ch. 3.1, 3.2,3.4,3.5

    • Ch. 7.5, 7.6

    • Ch. 8.1, 8.2.1, 8.5

    • Ch. 9.1, 9.2, 9.3, 9.4

Synchronous Session (In-person)

As a reminder here are the dates and times for the synchronous session for this module:

  • Dates/Times
    • Section 1: Tuesday October 18th @ 12:30pm-2:20pm

  • Discussion Outline
    • Q&A on the pre-recorded lectures

    • Additional Low-Level Primitives

    • Implementations of Concurrent Linked-Lists

Assignment

Assignments are normally out and due on Wednesday evenings.