Dan Grossman   Teaching Materials   Sophomoric Parallelism and Concurrency

Sophomoric Parallelism and Concurrency: C++ Materials


The main Sophomoric Parallelism and Concurrency materials use Java for all the code examples, explanations, homework problems, etc., though naturally all the concepts and most of the material is not specific to Java. Picking one language just makes the materials shorter and easier for students.

This page has materials that use C++ instead, including the C++11 support for threads and OpenMP. Steve Wolfman and Alan Hu at the University of British Columbia created the materials by porting the main materials and making appropriate additions and changes. They did so for this course. Each section below describes the changes in a little more detail.


All materials on this page (the C++ version of the Sophomoric Parallelism and Concurrency materials) are licensed under a Creative Commons Attribution 3.0 Unported License. The materials were developed by Steve Wolfman, Alan Hu, and Dan Grossman.

Creative Commons License

Reading Notes

This is a full port of the reading notes from March, 2012. All code examples use C++ instead of Java and an appendix provides more C++ details. While the parallelism sections were used in the class, the concurrency sections have not been used, so they may be less robust.

A Sophomoric Introduction to Shared-Memory Parallelism and Concurrency, Adapted to C++ (pdf)

Instructors can make variants/extracts using the LaTeX source and a few pictures:
  sophomoricParallelismAndConcurrency_cplusplus.tex  forkjoindag.jpg  memoryVenn.jpg  afterPass1.png  afterPass2.png


Lecture Slides

These slides cover only the parallelism portion of the materials. They are also significantly different than the main (Java) versions, owing to different lecturing/interaction style and some different examples. You may find it useful to use portions of both versions of the slides.

In PowerPoint 2007 and pdf

  1. Introduction to Multithreading and Fork-Join Parallelism  pptx  pdf
  2. Analysis of Fork-Join Parallel Programs  pptx  pdf
  3. Parallel Prefix, Pack, and Sorting  pptx  pdf

More Information

The main Sophomoric Parallelism and Concurrency page has more information, a low-traffic mailing list, and more. We may also provide some C++ homework and exam problems at some point -- if interested, or with any other questions or comments, please contact Dan Grossman.

picture of Dan's email address: username djg for UW CSE

Last updated: June 2012

Valid CSS Valid XHTML 1.1