CS380P Parallel Systems Fall 2023

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

slides

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

slides

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

Chapter 1
slides

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

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

Chapter 6 (pp. 143-187)
slides

Synchronization Implementation Details

Mon 09/04 Labor Day

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

Wed 09/13 Parallel Architectures
Parallel Architecture
[lecture]

Lab 1: pthreads prefix sum

slides

1) SIMD Architectures

Mon 09/18 Parallel Architectures
Parallel Algorithms
[lecture]

slides

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

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

SIMD Architectures

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

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

Wed 09/27 Parallel Architectures
GPU Optimization
[lecture]

1) Parallel Prefix Sum (Scan) with CUDA
slides

Mon 10/02 Programming Models
Go Programming
[lecture]

1) Go Book Chapter
slides

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

Lab 2: GPU K-means

1) Implementation of Cilk-5 Multithreaded Language
slides

Mon 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/11 Foundations and Perspectives
Success stories
[lecture]

slides

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

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

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

Lab 3: Go Tree Comparison

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

Mon 10/30 Shared Memory
Lock Freedom
[lecture]

Lock-Freedom
 slides

Wed 11/01 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/06 Shared Memory
Race Detection
[lecture]

1) RaceTrack
 slides

Wed 11/08 Shared Memory
Rust
[lecture]


 slides

Mon 11/13 Parallelism at Scale
MPI
[lecture]

Chapter 7 (pp. 202-229)
 slides

MPI: A Message-Passing Interface Standard

Wed 11/15 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/17 Parallel Performance
Two Parallel Algorithms
[lecture]

Mon 11/20 Fall Break

Wed 11/22 Fall Break

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

Wed 11/29 Correctness at Scale

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

Mon 12/04 Auto-parallelization

Lab 5: MPI Barnes-hut

1) Dandelion: a Compiler and Runtime for Heterogeneous Systems

DryadLINQ


Last updated: 2023-08-19 09:14:41 -0500 [validate xhtml]