Dan Grossman Teaching Materials Sophomoric Parallelism and Concurrency
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.
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
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
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.
Last updated: June 2012