This page lists the topics and readings for each class. Please do the reading before coming to class.

This schedule will be updated occasionally: all updates will be announced in class and posted on the course web page.

Date Topic/Activity Reading
Jan 18 C Review Lecture 1: C Pointers and Dynamic Memory Allocation
Jan 23 Parallel computation Lecture 2: Intro to Parallel Computation, Chapters 1–2
Jan 25 MPI Lecture 3: MPI, Sections 3.1–3.3 (p. 83–101)
Jan 30 Elements of a Parallel Program Lecture 4: Elements of a Parallel Program
Feb 1 MPI Collective Communications Lecture 5: MPI Collective Communications, Section 3.4 (p. 101–116)
Feb 6 MPI Derived Datatypes Lecture 6: MPI Derived Datatypes, Section 3.5 (p. 116–119)
Feb 8 MPI Performance Lecture 7: MPI Performance, Section 3.6 (p. 119–127)
Feb 13 MPI Review  
Feb 15 Work day  
Feb 20 Exam 1  
Feb 22 Pthreads Lecture 8: Introduction to pthreads
Feb 27 Winter vacation, no class  
Mar 1 Winter vacation, no class  
Mar 6 Mutexes Lecture 9: Mutexes, Sections 4.1–4.6
Mar 8 Lab activity  
Mar 13 Condition variables Lecture 10: Condition Variables, Sections 4.7–4.8
Mar 15 Reader/writer locks Lecture 11: Reader/Writer Locks, Sections 4.9–4.11
Mar 20 Java Threads, Synchronization Lecture 12: Java Threads, Synchronization
Mar 22 Fork/Join Parallelism Lecture 13: Fork/Join Parallelism
Doug Lea, A Java Fork/Join Framework
Mar 27 Lock-free data structures Lecture 14: Lock-free data structures
Maged Michael and Michael Scott, Simple, Fast, and Practical Non-Blocking and Blocking Concurrent Queue Algorithms
Mar 29 Sockets Lecture 15: Socket programming in C
Apr 3 Java Sockets Lecture 16: Socket programming in Java
Apr 5 GPGPU Computation, CUDA Lecture 17: GPGPU Programming, CUDA
Apr 10 GPGPU Computation Lecture 18: CUDA Threads
Apr 12 Lab day (catch up on your labs!)  
Apr 17 Spring vacation, no class  
Apr 19 Exam review  
Apr 24 Exam 2 covering pthreads  
Apr 26 Work day  
May 1 Work day  
May 3 Work day