M7: Advanced Parallel Scheduling Techniques (Part 1)

In this seventh module, we will begin to look at more ways to dynamically distribute work to threads in a parallel program. Specifically, we will look at the futures, work dealing and stealing algorithms.

Pre-recorded Lectures

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

  • 7.1 - Thread Pools and Futures

  • 7.2 - Work Distribution (Dealing & Stealing)

  • 7.3 - Work Stealing and ABA Problem

  • 7.4 - Work Stealing Algorithm

  • 7.5 - BSP Model

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

Resources/Readings

  • The Art of Multiprocessor Programming readings:
    • Ch. 16.1, 16.4, 16.5

Synchronous Sessions

You will find the links to the Zoom sessions on Canvas. As a reminder here are the dates and times for the synchronous session for this module:

  • Dates/Times
    • Section 1: Thursday November 11th @ 4:00pm-5:20pm

  • Discussion Outline
    • Work balancing implementation

    • Review the BSP Model

    • Profiling Go Programs

    • Q&A on the pre-recorded lectures

Assignment

Assignments are always out and due on Friday evenings.

  • Homework #4, due Thursday November 11th at 11:59pm CDT

  • Project #2, due Thursday November 18th at 11:59pm CDT