M6: Advanced Parallel Scheduling Techniques¶
In this sixth 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¶
Note: The pre-recorded videos for M6 will be posted after Wednesday’s lecture.
The pre-recorded lectures are available here: M6 Videos. You can also find the videos under the “Panopto” tab on the MPCS 52060 canvas site.
The lectures are a series of approx 20-30 minute videos divided into the following sections:
Week 7¶
No videos this week. Study for your exam.
Week 8¶
6.1: Work Distribution (Dealing & Stealing)
6.2: Work-Stealing and ABA Problem
6.3: Work Stealing Algorithm
Week 9¶
6.4: Bulk synchronous parallel (BSP) model
6.5: Parallel computation in Python and C
The slides/code presented in these videos are accessible in the upstream repository under the m6/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 Session (In-person Lecture)¶
As a reminder here are the dates and times for the synchronous session for this module:
Week 7¶
- Dates/Times
Wednesday May 1st @ 5:30pm-7:20pm
- Session Outline
Thread Pools and Futures
Work Distribution (Dealing & Stealing)
Work Stealing and ABA Problem [if time permits]
Week 9¶
- Dates/Times
Wednesday May 15th @ 5:30pm-7:20pm
- Session Outline
Work Balancing
Data Parallelism (Map/Reduce)
Barriers [if time permits]
Check the upstream repository at the start of class to retrieve the code snippets that will be discussed in the synchronous session.
Assignment¶
Assignments are always due on Thursday evenings.
Project #2, due Thursday May 2nd at 11:59pm CDT
Project #3, due Thursday May 23rd at 11:59pm CDT