CS378 Concurrency: Honors

Date Topic Zoom Link Assignments Reading/Slides/Videos Suggested Readings
Tue 01/21 Course Intro, Concurrency and Correctness

slides

Thu 01/23 Processes, Threads, Fibers

Chapter 1  slides

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

Tue 01/28 PThreads, Blocking, Spinning, Conditions

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 01/30 Barriers, Events

Chapter 6 (pp. 173-187)  slides

Synchronization Implementation Details

Tue 02/04 Parallel Performance

Lab 1: pthreads prefix sum

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

Thu 02/06 Futures, Async

Futures and Promises dist-prog-book chapter 2  slides

Tue 02/11 Task Queues, Thread Pools

Windows APC Windows APC
Java Thread Pools Thread Pools  slides

Thu 02/13 Concurrency-Aware Languages--Cilk, Go, Julia, Chapel

1) Go Book Chapter  slides

Implementation of Cilk-5 Multithreaded Language

Tue 02/18 Transactions and Transactional Memory

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?

Thu 02/20 Concurrency-Aware Languages--OpenMP, Orc

Lab 2 Go due

1) OpenMP Book (pp. 15-40)  slides

The Orc Programming Language (pp. 1-25)

Tue 02/25 OpenMP, SIMD, Parallel Architectures

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

SIMD Architectures

Thu 02/27 SIMD, Parallel Architectures

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

Tue 03/03 GPUs: scans, reductions

1) Parallel Prefix Sum (Scan) with CUDA slides

Dandelion: a Compiler and Runtime for Heterogeneous Systems

Thu 03/05 GPUs continued

 slides

Tue 03/10 review

Lab 3 GPU-kmeans due

Thu 03/12 Exam

Exam in class.

quiz compilation

Tue 03/17 Spring break

Thu 03/19 Spring break

Tue 03/24 Bonus COVID-19 Spring break

Thu 03/26 Bonus COVID-19 Spring break

Tue 03/31 Shared Memory Safety
Rust
[lecture]

slides
lecture video

Thu 04/02 Concurrency and Distribution--MPI
[lecture]

Chapter 7 (pp. 202-229)
Rust slides
2PC review slides
MPI slides
lecture video

MPI: A Message-Passing Interface Standard

Tue 04/07 Concurrency at Scale--Map-Reduce
[lecture]

1) Map Reduce
2) Map Reduce is a Step Backwards
MPI slides
lecture video

Hadoop Tutorial

Thu 04/09 Concurrency at Scale--Dryad, Spark, Percolator
[lecture]

1) Spark
slides
lecture video

DryadLINQ
Naiad

Tue 04/14 Concurrency Distribution and Consistency: NoSQL
[lecture]

Rust Lab

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

Yesquel: scalable SQL storage for Web applications

Thu 04/16 Concurrent Datastructures, CRDTs
[lecture]

Project Plan DUE

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

Tue 04/21 FPGAs: Guest Lecturer Eric Schkufza
[lecture]

 Parameterized Modules
 The art of writing Test Benches
 Cascade ASPLOS 2019 Paper
 Eric's lecture
 FPGAs for Software Programmers pp.1-21
slides
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

Thu 04/23 FPGAs: Chris and Eric Schkufza co-teach!
[lecture]

 Verilog In One Day parts I-IV
 My first program in Verilog
lecture slides
Needleman-Wunsch slides
lecture video

 Chisel: Constructing Hardware in a Scala Embeedded Language
 LINQits: Big Data on Little Clients

Tue 04/28 Lock Freedom
[lecture]

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

Thu 04/30 Race Detection
[lecture]

Optional Lab: MPI+Barnes-hut

lecture slides
lecture video

RaceTrack

Tue 05/05 Project Presentations
[lecture]

Optional Lab: FPGAs with Cascade

lecture slides
lecture video

Thu 05/07 Exam 2
[lecture]

Exam

quiz compilation

Sat 05/09 Project DUE

Project DUE


Last updated: 2020-05-05 13:20:15 -0500 [validate xhtml]