CS378H Concurrency: Honors

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

slides

Wed 01/15 Processes, Threads, Fibers

Chapter 1
slides

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

Mon 01/20

Wed 01/22 PThreads, Blocking, Spinning, Conditions

Chapter 6 (pp. 143-173)

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)

Mon 01/27 Barriers, Events

Lab 1: pthreads prefix sum

Chapter 6 (pp. 173-187)

Synchronization Implementation Details

Wed 01/29 Parallel Performance

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

Mon 02/03 Futures, Async

Futures and Promises dist-prog-book chapter 2

Wed 02/05 Concurrency-Aware Languages--Cilk, Go, Julia, Chapel

1) Go Book Chapter

Implementation of Cilk-5 Multithreaded Language

Mon 02/10 Task Queues, Thread Pools

Windows APC Windows APC
Java Thread Pools Thread Pools

Wed 02/12 Transactions and Transactional Memory

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

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?

Mon 02/17 Concurrency-Aware Languages--OpenMP, Orc

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

The Orc Programming Language (pp. 1-25)

Wed 02/19 OpenMP, SIMD, Parallel Architectures

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

SIMD Architectures

Mon 02/24 SIMD, Parallel Architectures

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

Wed 02/26 GPUs: scans, reductions

1) Parallel Prefix Sum (Scan) with CUDA

Dandelion: a Compiler and Runtime for Heterogeneous Systems

Mon 03/03 Shared Memory Safety
Rust

Lab 3 GPU-kmeans due

Wed 03/05 Concurrency and Distribution--MPI

Chapter 7 (pp. 202-229)

MPI: A Message-Passing Interface Standard

Mon 03/10 Concurrency at Scale--Map-Reduce

1) Map Reduce

2) Map Reduce is a Step Backwards

Hadoop Tutorial

Wed 03/12 Exam

Mon 03/17 Spring break

Wed 03/19 Spring break

Mon 03/24 Concurrency at Scale--MPI and Map-Reduce

Rust Lab

1) Map Reduce

2) Map Reduce is a Step Backwards

Hadoop Tutorial

Wed 03/26 Concurrency at Scale--Dryad, Spark, Percolator

Project Plan DUE

1) Spark

DryadLINQ
Naiad

Mon 03/31 Concurrency Distribution and Consistency: NoSQL

1) NoSQL Database Systems: A Survey and Decision Guidance 

Yesquel: scalable SQL storage for Web applications

Wed 04/02 Concurrent Datastructures, CRDTs

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

Mon 04/07 FPGAs: Guest Lecturer Eric Schkufza

 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

 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

Wed 04/09 Lock Freedom

Lab 5: MPI+Barnes-hut

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

Mon 04/14 Race Detection

RaceTrack

Wed 04/16 More on Lock Freedom

Wed 04/16 Review

Wed 04/23 Exam 2

Exam

Mon 04/28 Project Presentations

Project DUE

Tue 04/29 End of the Semester

Optional Lab 6: FPGAs with Cascade


Last updated: 2025-01-18 14:33:33 -0600 [validate xhtml]