CS380P Parallel Systems Fall 2022

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

slides

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

slides

Tue 09/03 Background and Motivation
Processes and Threads
[lecture]

Chapter 1
slides

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

Thu 09/05 Background and Motivation
Synchronization and Cache Coherence
[lecture]

Chapter 6 (pp. 143-187)
slides

Synchronization Implementation Details

Mon 09/09 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)

Wed 09/11 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

Mon 09/16 Parallel Architectures
Parallel Architecture
[lecture]

Lab 1: pthreads prefix sum

slides

1) SIMD Architectures

Wed 09/18 Parallel Architectures
Parallel Algorithms
[lecture]

slides

Mon 09/23 Parallel Architectures
CUDA: Part I
[lecture]

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

SIMD Architectures

Wed 09/25 Parallel Architectures
CUDA: Part II
[lecture]

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

Mon 09/30 Parallel Architectures
GPU Optimization
[lecture]

1) Parallel Prefix Sum (Scan) with CUDA
slides

Wed 10/02 Programming Models
Go Programming
[lecture]

1) Go Book Chapter
slides

Mon 10/07 Programming Models
Cilk: Parallel Runtimes
[lecture]

Lab 2: GPU K-means

1) Implementation of Cilk-5 Multithreaded Language
slides

Wed 10/09 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/16 Foundations and Perspectives
Success stories
[lecture]

slides

Fri 10/18 Foundations and Perspectives
Lessons from Computer Architecture
[lecture]

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

Fri 10/25 Foundations and Perspectives
Reasoning about Performance
[lecture]

Lab 3: Go Tree Comparison

Mon 10/28 Foundations and Perspectives
Programming Tips
[lecture]

Wed 10/30 Shared Memory
Lock Freedom
[lecture]

Lock-Freedom
 slides

Mon 11/04 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)

Wed 11/06 Shared Memory
Race Detection
[lecture]

1) RaceTrack
 slides

Mon 11/11 Shared Memory
Rust
[lecture]


 slides

Wed 11/13 Parallelism at Scale
MPI
[lecture]

Chapter 7 (pp. 202-229)
 slides

MPI: A Message-Passing Interface Standard

Mon 11/18 Parallelism at Scale
Dataflow Engines
[lecture]

Lab 4 Rust 2PC

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

Spark
Naiad

Wed 11/20 Parallel Performance
Two Parallel Algorithms
[lecture]

Mon 11/25 Fall Break

Wed 11/27 Fall Break

Mon 12/02 Parallel Performance
Parallel Memory Management
[lecture]

Wed 12/04 Correctness at Scale

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

Fri 12/06 Auto-parallelization

Lab 5: MPI Barnes-hut

1) Dandelion: a Compiler and Runtime for Heterogeneous Systems

DryadLINQ


Last updated: 2024-08-26 14:53:45 -0500 [validate xhtml]