CS378 Concurrency: Honors

Date Topic Zoom Link Assignments Reading/Slides/Videos Suggested Readings
Tue 08/22 Course Intro, Concurrency and Correctness
[lecture]

slides

Thu 08/24 Processes, Threads, Fibers
[lecture]

Chapter 1
slides

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

Tue 08/29 PThreads, Blocking, Spinning, Conditions
[lecture]

Chapter 6 (pp. 143-173)
slides

Experiences with Processes and Monitors in Mesa (Lampson and Redell, Communications of the ACM 23, 2, 1980)
The "Double-Checked Locking is Broken" Declaration (Bacon, Bloch, Bogda, Click, Haahr, Lea, May, Maessen, Mitchell, Nilsen, Pugh, Sirer, 2004)

Thu 08/31 Barriers, Events
[lecture]

Lab 1: Synchronization Basics

Chapter 6 (pp. 173-187) slides

Synchronization Implementation Details

Tue 09/05 Lab 1 Discussion

Chapter 3, Chapter 4 (pp. 88-100) Lecture slides
Discussion slides

Thu 09/07 Parallel Performance
[lecture]

Chapter 3, Chapter 4 (pp. 88-100) slides

Tue 09/12 Futures, Async
[lecture]

Futures and Promises dist-prog-book chapter 2 slides

Thu 09/14 Concurrency-Aware Languages--Cilk, Go, Julia, Chapel
[lecture]

Lab 2: Prefix Scan and Barriers

1) Go Book Chapter
Events slides

Implementation of Cilk-5 Multithreaded Language

Tue 09/19 Task Queues, Thread Pools
[lecture]

Windows APC Windows APC
Java Thread Pools Thread Pools
Go slides

Thu 09/21 Transactions and Transactional Memory
[lecture]

Ordering concurrent events and transactions in Principles of Transaction Processing  book
Chapter 10 (pp 291-295)
The Art of Multiprocessor Programming 3-3.6  book-notes
slides

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)
Is Transactional Programming Actually Easier?

Tue 09/26 Concurrency-Aware Languages--OpenMP, Orc
[lecture]

1) OpenMP Book (pp. 15-40)
TM slides
Compiler parallelization slides

The Orc Programming Language (pp. 1-25)

Thu 09/28 OpenMP, SIMD, Parallel Architectures
[lecture]

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

SIMD Architectures

Tue 10/03 SIMD, Parallel Architectures
[lecture]

Lab 3: Go Go Go due

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

Thu 10/05 GPUs: scans, reductions
[lecture]

1) Parallel Prefix Sum (Scan) with CUDA
slides 1

slides 2

Dandelion: a Compiler and Runtime for Heterogeneous Systems

Tue 10/10 Exam

Thu 10/12 Shared Memory Safety
Rust
[lecture]


slides 1

slides 2

Tue 10/17 Concurrency at Scale--Map-Reduce
[lecture]

Chapter 7 (pp. 202-229)
slides

Hadoop Tutorial

Thu 10/19 Concurrency at Scale--MPI and Map-Reduce
[lecture]

1) Map Reduce

2) Map Reduce is a Step Backwards

Rust slides

MPI: A Message-Passing Interface Standard

Tue 10/24 Concurrency at Scale--Dryad, Spark, Percolator
[lecture]

Lab 4: GPU Kmeans++ due

1) Spark
Rust, MPI slides

DryadLINQ
Naiad

Thu 10/26 Concurrency Distribution and Consistency: NoSQL
[lecture]

Project Plan DUE

1) NoSQL Database Systems: A Survey and Decision Guidance 
Dataflow slides

Yesquel: scalable SQL storage for Web applications

Tue 10/31 Concurrent Datastructures, CRDTs
[lecture]

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

Thu 11/02 FPGAs: Guest Lecturer Eric Schkufza
[lecture]

Consistency slides
 Parameterized Modules
 The art of writing Test Benches
 Cascade ASPLOS 2019 Paper
 Eric's lecture from last year
 FPGAs for Software Programmers pp.1-21
 Verilog In One Day parts I-IV
 My first program in Verilog
lecture video

 Sharing, Protection, and Compatibility for Reconfigurable Fabric with AMORPHOS
 Eric's Demo Source demo_1.v
 Eric's Demo Source demo_2.v
 Eric's Demo Source demo_3a.v
 Eric's Demo Source demo_3b.v
 Eric's Demo Source demo_4.v
 Eric's Demo Source demo_5.v
 Eric's Demo Source demo_6.v
 Chisel: Constructing Hardware in a Scala Embeedded Language
 LINQits: Big Data on Little Clients

Tue 11/07 Lock Freedom
[lecture]

Lab 5: Two Phase Commit in Rust

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

Thu 11/09 Race Detection
[lecture]

Lock Freedom slides

RaceTrack

Tue 11/14 Advanced Topics
[lecture]

Advanced Topics

race detection slides

Thu 11/16 Advanced Topics
[lecture]

Advanced Topics

race detection slides

Tue 11/21 Fall break

Thu 11/23 Fall break

Tue 11/28 FPGAs: Guest Lecturer Joshua Landgraf

 Parameterized Modules
 The art of writing Test Benches
 Cascade ASPLOS 2019 Paper
 Eric's lecture from last year
 FPGAs for Software Programmers pp.1-21
 Verilog In One Day parts I-IV
 My first program in Verilog
lecture video

 Sharing, Protection, and Compatibility for Reconfigurable Fabric with AMORPHOS
 Eric's Demo Source demo_1.v
 Eric's Demo Source demo_2.v
 Eric's Demo Source demo_3a.v
 Eric's Demo Source demo_3b.v
 Eric's Demo Source demo_4.v
 Eric's Demo Source demo_5.v
 Eric's Demo Source demo_6.v
 Chisel: Constructing Hardware in a Scala Embeedded Language
 LINQits: Big Data on Little Clients

Thu 11/30 Exam 2
[lecture]

Exam

Mon 12/04 Last Day of the Semester

Optional Lab: FPGAs with Cascade
Optional Lab: MPI
Project DUE


Last updated: 2023-11-18 05:25:48 -0600 [validate xhtml]