SIGCSE 2016 Workshop 107:

Teaching Parallel Computing Concepts with OpenMP

7 PM - 10 PM, Wednesday March 2, 2016
Room L11-L12

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

Abstract: OpenMP is an industry-standard, platform-independent parallel programming library built into all modern C and C++ compilers. Unlike complex parallel platforms, OpenMP is designed to make it relatively easy to add parallelism to existing sequential programs, as well as write new parallel programs from scratch. In this fun, interactive, hands-on workshop, participants will use OpenMP to learn about a variety of parallel programming concepts, including single program multiple data (SPMD) execution, fork-join threading, parallel loops, parallel blocks, atomic execution, mutual exclusion, and others. Participants will explore 15 short programs designed to help students understand specific parallel concepts, plus several longer programs in which OpenMP is used to solve significant problems. The workshop includes: (i) an introduction to OpenMP, (ii) self-paced hands-on experimentation with the OpenMP programs, and (iii) a discussion of how OpenMP may be used to achieve parallel computing objectives in CS 2013. Participants will also view visual examples that let students see parallelism happening in real time. Participants will need a laptop with an SSH client (e.g., BitVise, PuTTY), or a laptop with a compiler that supports OpenMP (e.g., gcc 4.2 or later, Visual Studio 2008 or later); Linux, Mac, and Windows laptops will be supported. Knowledge of a C-family language (e.g., C, C++, Java, ...) may be helpful but is not required to benefit from the workshop. All materials from this workshop will be freely available from csinparallel.org.

Schedule

7-7:30 PM:

Introduction (Joel), 10 minutes

Slides:

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

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

Using the CDER cluster (Joel), 10 minutes

Introduction to the OpenMP patternlets (Libby), 10 minutes

7:30-8:30:

Self-paced, hands-on exploration of OpenMP patternlets

8:30-8:45

Break, 15 minutes

8:45-9:00:

Introduction to OpenMP exemplars (Libby, Dick)

9:00-9:30:

Self-paced, hands-on exploration of OpenMP exemplars

9:30-9:50:

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

9:50-10:00:

Assessment: Please fill out the SIGCSE online form for this workshop

Also, 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

Patternlets in Parallel Programming

Exemplars

Multicore Programming with OpenMP

Monte Carlo Simulations: Parallelism in CS1/CS2

Concept:Data Decomposition Pattern

Pandemic Exemplar

Drug Design Exemplar

Notes for Drug Design Exemplar

Explore

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.


Some resources

Patterns books

CDER Center

  • CDER Center website
  • An NSF-supported initiative of the IEEE/CS Technical Committee on Parallel Programming (TCPP)