CS378 Concurrency

Date Topic Assignments Reading Suggested Readings
Tue 01/16 Course Intro, Concurrency and Correctness


Thu 01/18 Processes, Threads, Fibers

Chapter 1  slides

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

Tue 01/23 PThreads

Chapter 6 (pp. 143-153)  slides

Thu 01/25 Blocking, Spinning, Conditions

Chapter 6 (pp. 153-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)

Tue 01/30 Barriers, Events

Lab 1: locking due

Chapter 6 (pp. 173-187)  slides

Synchronization Implementation Details

Thu 02/01 Parallel Performance

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

Tue 02/06 Futures, Async

Futures and Promises Futures And Promises dist-prog-book chapter 2  slides

Thu 02/08 Task Queues, Thread Pools

Windows APC Windows APC
Java Thread Pools Thread Pools  slides

Tue 02/13 Transactions

Lab 2 CPU kmeans due

Ordering concurrent events and transactions in Principles of Transaction Processing  book
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
The Transaction Concept (Gray, 1981)

Thu 02/15 Transactional Memory

Chapter 10 (pp 291-295)  slides

Is Transactional Programming Actually Easier?

Tue 02/20 Concurrency-Aware Languages--Cilk, Go, Julia, Chapel

1) Go Book Chapter  slides

Implementation of Cilk-5 Multithreaded Language

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

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

The Orc Programming Language (pp. 1-25)

Tue 02/27 SIMD, Parallel Architectures

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

SIMD Architectures

Thu 03/01 GPUs: architecture and programming model

Lab 3 Go due

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

Tue 03/06 GPUs: scans, reductions

1) Parallel Prefix Sum (Scan) with CUDA  slides

Dandelion: a Compiler and Runtime for Heterogeneous Systems

Thu 03/08 Exam

Exam in class.

quiz compilation

Tue 03/13 Spring break

Thu 03/15 Spring break

Tue 03/20 GPUs continued


Thu 03/22 GPUs wrap-up

Tue 03/27 Research Day--No Class
Thu 03/29 Concurrency and Distribution--MPI

Lab 4 GPU-kmeans due

Chapter 7 (pp. 202-229)  slides

MPI: A Message-Passing Interface Standard

Tue 04/03 Concurrency at Scale--Map-Reduce

1) Hadoop Tutorial  slides

Map Reduce
Map Reduce is a Step Backwards

Thu 04/05 Concurrency at Scale--Dryad, Spark, Percolator

Project Plan DUE

1) Spark  slides


Tue 04/10 Concurrency Distribution and Consistency: NoSQL

Optional Lab 5 MPI+Barnes-hut

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

Yesquel: scalable SQL storage for Web applications

Thu 04/12 Concurrent Datastructures and CRDTs

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

Tue 04/17 Galois

Project Plan Revisions DUE

1) The Tao of Parellelism in Algorithms

Thu 04/19 Lock-free data structures


Tue 04/24 Race Detection

Optional Lab 6 map-reduce



Thu 04/26 Makeup/Overflow

Tue 05/01 Exam 2

Exam in class.

quiz compilation

Thu 05/03 Project presentations

In-class Presentation
Project DUE

Last updated: 2018-04-23 12:07:16 -0500 [validate xhtml]