CS380P Parallel Systems Fall 2022

Date Topic EdX_Lecture Assignments Reading Suggested Readings
Mon 08/22 Background and Motivation
Introduction
[lecture]

slides

Wed 08/24 Background and Motivation
Scalability and Correctness
[lecture]

slides

Mon 08/29 Background and Motivation
Processes and Threads
[lecture]

Chapter 1
slides

Understanding the Linux Kernel (3rd Edition) Chapter 9, Process Address Space (skim)

Wed 08/31 Background and Motivation
Synchronization and Cache Coherence
[lecture]

Chapter 6 (pp. 143-187)
slides

Synchronization Implementation Details

Mon 09/05 Labor Day

Wed 09/07 Background and Motivation
Monitors and Barriers
[lecture]

Chapter 3, 11
slides

Experiences with Processes and Monitors in Mesa (Lampson and Redell, Communications of the ACM 23, 2, 1980)

Mon 09/12 Background and Motivation
Events and Futures
[lecture]

Futures and Promises dist-prog-book chapter 2
slides
Windows APC Windows APC
Java Thread Pools Thread Pools

The Orc Programming Language (pp. 1-25)
OpenMP Book (pp. 15-40)  slides

Wed 09/14 Parallel Architectures
Parallel Architecture
[lecture]

Lab 1: pthreads prefix sum

slides

1) SIMD Architectures

Mon 09/19 Parallel Architectures
Parallel Algorithms
[lecture]

slides

Wed 09/21 Parallel Architectures
CUDA: Part I
[lecture]

1) CUDA Progamming Model (pp. 23-58)
slides

SIMD Architectures

Mon 09/26 Parallel Architectures
CUDA: Part II
[lecture]

1) CUDA Execution Model (pp. 67-100)
slides

Wed 09/28 Parallel Architectures
GPU Optimization
[lecture]

1) Parallel Prefix Sum (Scan) with CUDA
slides

Mon 10/03 Programming Models
Go Programming
[lecture]

1) Go Book Chapter
slides

Wed 10/05 Programming Models
Cilk: Parallel Runtimes
[lecture]

Lab 2: GPU K-means

1) Implementation of Cilk-5 Multithreaded Language
slides

Mon 10/10 Programming Models
Transactions
[lecture]

Ordering concurrent events and transactions in Principles of Transaction Processing  book
slides
Chapter 10 (pp 291-295)

Transaction Processing: Concepts and Techniques (Jim Gray and Andreas Reuter 1993) 1.1 - 1.2.5
4.2, 4.7 and 4.7.1, 4.9 and 4.9.1
7.1-7.6
The Transaction Concept (Gray, 1981)

Wed 10/12 Foundations and Perspectives
Success stories
[lecture]

slides

Mon 10/17 Foundations and Perspectives
Lessons from Computer Architecture
[lecture]

Wed 10/19 Foundations and Perspectives
Understanding Speedup
[lecture]

Mon 10/24 Foundations and Perspectives
Reasoning about Performance
[lecture]

Lab 3: Go Tree Comparison

Wed 10/26 Foundations and Perspectives
Programming Tips
[lecture]

Mon 10/31 Shared Memory
Lock Freedom
[lecture]

Lock-Freedom
 slides

Wed 11/02 Shared Memory
Transactional Memory
[lecture]

Chapter 10 (pp 291-295)
The Art of Multiprocessor Programming 3-3.6
1) Is Transactional Programming Actually Easier?
slides

The "Double-Checked Locking is Broken" Declaration (Bacon, Bloch, Bogda, Click, Haahr, Lea, May, Maessen, Mitchell, Nilsen, Pugh, Sirer, 2004)

Mon 11/07 Shared Memory
Race Detection
[lecture]

1) RaceTrack
 slides

Wed 11/09 Shared Memory
Rust
[lecture]


 slides

Mon 11/14 Parallelism at Scale
MPI
[lecture]

Chapter 7 (pp. 202-229)
 slides

MPI: A Message-Passing Interface Standard

Wed 11/16 Parallelism at Scale
Dataflow Engines
[lecture]

Lab 4 Rust 2PC

1) Map Reduce
2) Map Reduce is a Step Backwards
 slides

Spark
Naiad

Fri 11/18 Parallel Performance
Two Parallel Algorithms
[lecture]

Mon 11/21 Fall Break

Wed 11/23 Fall Break

Mon 11/28 Parallel Performance
Parallel Memory Management
[lecture]

Wed 11/30 Correctness at Scale

CAP, Consistency, and CRDTs
dist-prog-book chapter 6
 

Mon 12/05 Auto-parallelization

Lab 5: MPI Barnes-hut

1) Dandelion: a Compiler and Runtime for Heterogeneous Systems

DryadLINQ


Last updated: 2022-07-27 11:46:26 -0500 [validate xhtml]