CS378 Concurrency: Honors

Date Topic Assignments Reading Suggested Readings
Wed 08/29 Course Intro, Concurrency and Correctness


Mon 09/03 Labor Day

Wed 09/05 Processes, Threads, Fibers

Chapter 1  slides

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

Mon 09/10 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)

Wed 09/12 Barriers, Events

Lab 1: locking due

Chapter 6 (pp. 173-187)  slides

Synchronization Implementation Details

Mon 09/17 Parallel Performance

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

Wed 09/19 Futures, Async

Futures and Promises dist-prog-book chapter 2  slides

Mon 09/24 Task Queues, Thread Pools

Windows APC Windows APC
Java Thread Pools Thread Pools  slides

Wed 09/26 Transactions and Transactional Memory

Lab 2 CPU kmeans 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

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
The Transaction Concept (Gray, 1981)
Is Transactional Programming Actually Easier?

Mon 10/01 Concurrency-Aware Languages--Cilk, Go, Julia, Chapel

1) Go Book Chapter  slides

Implementation of Cilk-5 Multithreaded Language

Wed 10/03 Concurrency-Aware Languages--OpenMP, Orc

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

The Orc Programming Language (pp. 1-25)

Mon 10/08 OSDI Celebration (Guest Lecture)

1) The Tao of Parellelism in Algorithms

Wed 10/10 Galois (Guest Lecture)

Mon 10/15 OpenMP, SIMD, Parallel Architectures

Lab 3 Go due

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

SIMD Architectures

Wed 10/17 SIMD, Parallel Architectures

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

Mon 10/22 GPUs: scans, reductions

1) Parallel Prefix Sum (Scan) with CUDA slides

Dandelion: a Compiler and Runtime for Heterogeneous Systems

Wed 10/24 GPUs continued


Mon 10/29 FPGAs

Lab 4 GPU-kmeans due

 FPGAs for Software Programmers pp.1-21

Wed 10/31 Exam

Exam in class.

quiz compilation

Mon 11/05 FPGAs

 Verilog In One Day parts I-IV
 My first program in Verilog

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

Wed 11/07 FPGAs Guest Lecturer Eric Schkufza (VMware Research)

 Parameterized Modules
 The art of writing Test Benches
 Cascade ASPLOS 2019 Paper
 Eric's lecture

 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

Mon 11/12 Concurrency and Distribution--MPI

Chapter 7 (pp. 202-229)

MPI: A Message-Passing Interface Standard

Wed 11/14 Concurrency at Scale--Map-Reduce

1) Map Reduce
2) Map Reduce is a Step Backwards

Hadoop Tutorial

Mon 11/19 Crash Consisentency and Non-volatile Memory
Guest Lecture Prof. Vijay Chidambaram

Lab 5 FPGAs

1) Finding Crash-Consistency Bugs with Bounded Black-Box Crash Testing


Wed 11/21 Concurrent Languages and Auto-deparallelization
Guest Lecture -- Arthur Peters

Project Plan DUE

Mon 11/26 Concurrency at Scale--Dryad, Spark, Percolator

1) Spark


Wed 11/28 Concurrency Distribution and Consistency: NoSQL

1) NoSQL Database Systems: A Survey and Decision Guidance

Yesquel: scalable SQL storage for Web applications

Mon 12/03 Concurrent Datastructures, CRDTs, Lock-freedom

Optional: Lab 6 MPI+Barnes-hut

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

Wed 12/05 Race Detection



Mon 12/10 Exam 2

Exam in class.

quiz compilation

Wed 12/12 Project DUE

Project DUE

Last updated: 2018-12-05 10:37:36 -0600 [validate xhtml]