M2: Shared Memory Architectures

This second modules provides an an in-depth examination of the components that makes up a shared memory architecture (i.e., basis of many consumer based computer systems). We will examine how we can use these shared memory systems to begin implementing parallel programs.

Pre-recorded Lectures

Note: The pre-recorded videos for M2 will be posted after Tuesday’s lecture.

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

  • 2.1 - Race Conditions

  • 2.2- Instruction Level Parallelism in Hardware

  • 2.3 - Improving Data Access Performance

The slides presented in lecture and these videos are accessible on our Canvas Page. Click on the Files link and you then can download the m2.zip file.

Resources/Readings

  • The slides and code presented in this module are accessible on our Canvas Page. Click on the Files link and you then can download the m2.zip file.

  • The Art of Multiprocessor Programming readings:
    • Appendix B.2. B.3, B.4, B.5, B.7

    • Chapter 1.1, 1.6

  • Go by Example
    • Pointers section

  • Understanding Pointers in Go

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 4th @ 12:30pm-2:20pm

  • Discussion Outline
    • Overview and programming shared memory systems

    • Structuring parallel programs

    • Low-Level synchronization mechanisms: Atomic operations

    • Q&A on the pre-recorded lectures

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 Wednesday evenings.

  • Homework #2, due Wednesday October 12th at 11:59pm CDT