CS378 Concurrency

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

slides

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
7.1-7.6
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)

SIMD Architectures

Thu 03/01 GPUs: architecture and programming model

Lab 3 Go due

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

Tue 03/06 GPUs: scans, reductions

1) Parallel Prefix Sum (Scan) with CUDA

Dandelion: a Compiler and Runtime for Heterogeneous Systems

Thu 03/08 Exam

Exam in class.

Tue 03/13 Spring break

Thu 03/15 Spring break

Tue 03/20 Concurrency and Distribution--MPI

Chapter 7 (pp. 202-229)

MPI: A Message-Passing Interface Standard

Thu 03/22 Concurrency at Scale--Map-Reduce

1) Hadoop Tutorial

Map Reduce
Map Reduce is a Step Backwards

Tue 03/27 Concurrency at Scale--Dryad, Spark, Percolator

Lab 4 GPU-kmeans due

1) Spark

DryadLINQ
Naiad

Thu 03/29 Concurrency Distribution and Consistency: NoSQL

NoSQL Database Systems: A Survey and Decision Guidance
Yesquel: scalable SQL storage for Web applications

Tue 04/03 Task Parallelism: StarPU

1) STARPU: A Unified Platform for Task Scheduling on Heterogeneous Multicore Architectures

Thu 04/05 Dataflow: PTask

Project Plan DUE

1) PTask: Operating System Abstractions to Manage GPUs as Compute Devices

Tue 04/10 Galois

Lab 5 MPI+Barnes-hut due

1) The Tao of Parellelism in Algorithms

Thu 04/12 Concurrent Datastructures and CRDTs

Revised Project Plan DUE

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

Tue 04/17 Compiler-based auto-parallelization

Thu 04/19 Framework-based auto-parallelization

Tue 04/24 Race Detection

Lab 6 map-reduce due

RaceTrack

Thu 04/26 Make up and Review

Tue 05/01 Exam 2

Exam in class.

Thu 05/03 Project presentations

In-class Presentation
Project DUE


Last updated: 2018-02-22 16:01:59 -0600 [validate xhtml]