Date |
Topic |
Zoom Link |
Assignments |
Reading/Slides/Videos |
Suggested Readings |
Tue 01/10 |
Course Intro, Concurrency and Correctness
| [lecture] |
|
slides
|
|
Thu 01/12 |
Processes, Threads, Fibers
| [lecture] |
|
Chapter 1 slides lecture video
|
Understanding the Linux Kernel (3rd Edition) Chapter 9, Process Address Space (skim)
|
Tue 01/17 |
PThreads, Blocking, Spinning, Conditions
| [lecture] |
|
Chapter 6 (pp. 143-173) slides lecture video
|
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/19 |
Barriers, Events
| [lecture] |
|
Chapter 6 (pp. 173-187) slides lecture video
|
Synchronization Implementation Details
|
Tue 01/24 |
Parallel Performance
| [lecture] |
Lab 1: pthreads prefix sum
|
Chapter 3, Chapter 4 (pp. 88-100) slides lecture video
|
|
Thu 01/26 |
Futures, Async
| [lecture] |
|
Futures and Promises dist-prog-book chapter 2 slides lecture video
|
|
Tue 01/31 |
Winter Storm Closure
| |
|
|
|
Thu 02/02 |
Winter Storm Closure
| |
|
|
|
Tue 02/07 |
Concurrency-Aware Languages--Cilk, Go, Julia, Chapel
| [lecture] |
|
1) Go Book Chapter Go slides lecture video
|
Implementation of Cilk-5 Multithreaded Language
|
Thu 02/09 |
Task Queues, Thread Pools
| [lecture] |
|
Windows APC Windows APC
Java Thread Pools Thread Pools Events slides Go slides lecture video
|
|
Tue 02/14 |
Transactions and Transactional Memory
| [lecture] |
Lab 2 Go due
|
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 lecture video
|
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/16 |
Concurrency-Aware Languages--OpenMP, Orc
| [lecture] |
|
1) OpenMP Book (pp. 15-40) TM slides Compiler parallelization slides lecture video
|
The Orc Programming Language (pp. 1-25)
|
Tue 02/21 |
OpenMP, SIMD, Parallel Architectures
| [lecture] |
|
1) CUDA Progamming Model (pp. 23-58) slides lecture video
|
SIMD Architectures
|
Thu 02/23 |
SIMD, Parallel Architectures
| [lecture] |
|
1) CUDA Execution Model (pp. 67-100) slides slides lecture video
|
|
Tue 02/28 |
GPUs: scans, reductions
| [lecture] |
|
1) Parallel Prefix Sum (Scan) with CUDA slides 1 slides 2 lecture video
|
Dandelion: a Compiler and Runtime for Heterogeneous Systems
|
Thu 03/02 |
Shared Memory Safety Rust
| [lecture] |
|
slides lecture video-
|
|
Tue 03/07 |
Concurrency and Distribution--MPI
| [lecture] |
|
Chapter 7 (pp. 202-229) GPU slides Rust slides lecture video
|
MPI: A Message-Passing Interface Standard
|
Thu 03/09 |
Concurrency at Scale--Map-Reduce
| [lecture] |
Lab 3 GPU-kmeans due
|
1) Map Reduce
2) Map Reduce is a Step Backwards
Dataflow slides lecture video
|
Hadoop Tutorial
|
Tue 03/14 |
Spring break
| |
|
|
|
Thu 03/16 |
Spring break
| |
|
|
|
Tue 03/21 |
Exam
| [lecture] |
|
|
|
Thu 03/23 |
Concurrency at Scale--MPI and Map-Reduce
| [lecture] |
|
1) Map Reduce
2) Map Reduce is a Step Backwards
slides lecture video
|
Hadoop Tutorial
|
Tue 03/28 |
Concurrency at Scale--Dryad, Spark, Percolator
| [lecture] |
Project Plan DUE
|
1) Spark
Dataflow slides lecture video
|
DryadLINQ
Naiad
|
Thu 03/30 |
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
|
Tue 04/04 |
Concurrent Datastructures, CRDTs
| [lecture] |
|
CAP, Consistency, and CRDTs dist-prog-book chapter 6
slides lecture video
|
|
Thu 04/06 |
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 Verilog In One Day parts I-IV My first program in Verilog 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 Chisel: Constructing Hardware in a Scala Embeedded Language LINQits: Big Data on Little Clients
|
Tue 04/11 |
Lock Freedom
| [lecture] |
|
CAP, Consistency, and CRDTs dist-prog-book chapter 6 lecture slides lecture video
|
|
Thu 04/13 |
Race Detection
| [lecture] |
Optional Lab 5: MPI+Barnes-hut
|
race detection slides review slides lecture video
|
RaceTrack
|
Tue 04/18 |
Exam 2
| [lecture] |
Exam
|
|
|
Thu 04/20 |
Project Presentations
| [lecture] |
Project DUE
|
|
|
Mon 04/24 |
Last Day of the Semester
| |
Optional Lab 6: FPGAs with Cascade
|
|
|