CS380P Parallel Systems

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

slides

Mon 08/30 Background and Motivation
Scalability and Correctness
[lecture]

slides

Wed 09/01 Background and Motivation
Processes and Threads
[lecture]

Chapter 1
slides

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

Mon 09/06 Labor Day

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

Chapter 6 (pp. 143-187)
slides

Synchronization Implementation Details

Mon 09/13 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/15 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/20 Parallel Architectures
Parallel Architecture
[lecture]

Lab 1: pthreads prefix sum

slides

1) SIMD Architectures

Wed 09/22 Parallel Architectures
Parallel Algorithms
[lecture]

slides

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

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

SIMD Architectures

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

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

Mon 10/04 Parallel Architectures
GPU Optimization
[lecture]

1) Parallel Prefix Sum (Scan) with CUDA
slides

Wed 10/06 Programming Models
Go Programming
[lecture]

1) Go Book Chapter
slides

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

Lab 2: GPU K-means

1) Implementation of Cilk-5 Multithreaded Language
slides

Wed 10/13 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)

Mon 10/18 Foundations and Perspectives
Success stories
[lecture]

slides

Wed 10/20 Foundations and Perspectives
Lessons from Computer Architecture
[lecture]

Mon 10/25 Foundations and Perspectives
Understanding Speedup
[lecture]

Wed 10/27 Foundations and Perspectives
Reasoning about Performance
[lecture]

Lab 3: Go Tree Comparison

Mon 11/01 Foundations and Perspectives
Programming Tips
[lecture]

Wed 11/03 Shared Memory
Lock Freedom
[lecture]

Lock-Freedom
 slides

Mon 11/08 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/10 Shared Memory
Race Detection
[lecture]

1) RaceTrack
 slides

Mon 11/15 Shared Memory
Rust
[lecture]


 slides

Wed 11/17 Parallelism at Scale
MPI
[lecture]

Chapter 7 (pp. 202-229)
 slides

MPI: A Message-Passing Interface Standard

Mon 11/22 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/24 Parallel Performance
Two Parallel Algorithms
[lecture]

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

Wed 12/01 Correctness at Scale

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

Mon 12/06 Auto-parallelization

Lab 5: MPI Barnes-hut

1) Dandelion: a Compiler and Runtime for Heterogeneous Systems

DryadLINQ


Last updated: 2021-08-27 16:28:13 -0500 [validate xhtml]