SIGCSE 2014 Workshop 13:

Teaching Shared Memory Parallel Concepts with OpenMP

7 PM - 10 PM, Friday March 7, 2014
Dunwoody room

Instructors: Joel Adams (Calvin College), Dick Brown (St. Olaf College), and Libby Shoop (Macalester College)

Abstract: Curriculum 2013 brings parallelism into the CS curricular mainstream. This hands-on workshop is intended for faculty with little or no background in parallel computing. OpenMP is a platform independent, industry-standard library for shared-memory parallel programming supported by all modern C and C++ compilers. The workshop introduces the basics of OpenMP multithreading using parallel patterns, including single program multiple data (SPMD) execution, fork-join threading, and pragmas for parallel for loops, parallel blocks, mutual exclusion, etc. The workshop includes: (i) an overview of OpenMP, (ii) self-paced hands-on experimentation with the OpenMP programs, and (iii) a discussion of how these may be used to achieve the goals of Curriculum 2013. Workshop materials will be distributed from Participants will receive and explore 15 short programs designed to help students understand multithreading concepts, plus longer programs that use OpenMP to solve significant problems. A participant may explore these programs on their own laptop, provided it has installed a C/C++ compiler that supports OpenMP (e.g., gcc 4.2 or later; Visual Studio 2008 or later). Those comfortable with the command line may explore the programs on our remote servers using a laptop or tablet with a suitable SSH client. Laptop recommended.


7-7:30 PM:

Introduction (Joel), 10 minutes


shared-memory parallelism and OpenMP (Acrobat (PDF) 1.8MB Mar1 16)

PDC in Curriculum 2013 (Acrobat (PDF) 1.2MB Mar7 14)

Using Intel's Manycore Testing Lab (Dick), 10 minutes

Introduction to the OpenMP patternlets (Libby), 10 minutes


Self-paced, hands-on exploration of OpenMP patternlets


Break, 15 minutes


Introduction to OpenMP exemplars (Libby, Dick)
Workshop 13 Exemplars 1 and 2


Self-paced, hands-on exploration of OpenMP exemplars


Discussion: Where to teach students about shared-memory parallelism? (Joel)


Assessment: please fill out Our CSinParallel Project Survey for this Workshop. We appreciate your help in evaluating our NSF-funded project.

Course Modules for you to try


Patternlets in Parallel Programming


Multicore Programming with OpenMP

Drug Design Exemplar

Pandemic Exemplar

Materials to download

Source code archives can be found within the above Course Modules. However, for the Drug Design Exemplar you may wish to get this complete archive:

Code for Drug Design Exemplar (gzip Archive 5kB Mar7 14)


If you are interested, you can find more information about the rest of our modules from the modules link on the left menu of this page.