CS380P Parallel Systems

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

slides

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

slides

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

Chapter 1
slides

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

Mon 09/07 Labor Day

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

Chapter 6 (pp. 143-187)
slides

Synchronization Implementation Details

Mon 09/14 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/16 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/21 Parallel Architectures
Parallel Architecture
[lecture]

Lab 1: pthreads prefix sum

slides

1) SIMD Architectures

Wed 09/23 Parallel Architectures
Parallel Algorithms
[lecture]

slides

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

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

SIMD Architectures

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

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

Mon 10/05 Parallel Architectures
GPU Optimization
[lecture]

1) Parallel Prefix Sum (Scan) with CUDA
slides

Wed 10/07 Programming Models
Go Programming
[lecture]

1) Go Book Chapter
slides

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

Lab 2: GPU K-means

1) Implementation of Cilk-5 Multithreaded Language
slides

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

slides

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

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

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

Lab 3: Go Tree Comparison

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

Wed 11/04 Shared Memory
Lock Freedom
[lecture]

Lock-Freedom
 slides

Mon 11/09 Shared Memory
Transactional Memory
[lecture]

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

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

Wed 11/11 Shared Memory
Race Detection
[lecture]

1) RaceTrack
 slides

Mon 11/16 Shared Memory
Rust
[lecture]


 slides

Wed 11/18 Parallelism at Scale
MPI
[lecture]

Chapter 7 (pp. 202-229)
 slides

MPI: A Message-Passing Interface Standard

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

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

Wed 12/02 Correctness at Scale

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

Mon 12/07 Auto-parallelization

Lab 5: MPI Barnes-hut

1) Dandelion: a Compiler and Runtime for Heterogeneous Systems

DryadLINQ


Last updated: 2020-08-21 11:29:32 -0500 [validate xhtml]