SIGCSE 2014 Workshop 13:
Teaching Shared Memory Parallel Concepts with OpenMP
7 PM - 10 PM, Friday March 7, 2014
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 csinparallel.org. 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.
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
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.