Parallel Computing in the Computer Science Curriculum > Modules > Multicore Programming with OpenMP

Multicore Programming with OpenMP

Richard Brown, St. Olaf College

Libby Shoop, Macalester College


Intel® Corporation has set up a special remote system that allows faculty and students to work with computers with lots of cores, called the Manycore Testing Lab (MTL). In this lab, we will create a program that intentionally uses multi-core parallelism, upload and run it on the MTL, and explore the issues in parallelism and concurrency that arise.

This module uses the OpenMP parallel platform package; there is an alternative version of this module using Intel's Threading Building Blocks for those more familiar with that library.

Module Characteristics

Languages Supported: C++
Relevant Parallel Computing Concepts: Shared Memory
Recommended Teaching Level: Introductory, Intermediate

Learning Goals

Context for Use

This module can be taught in a C++-based course or in a course in which students have had prior C++ experience, though students with little or no knowledge of C or C++ have also completed it easily. It is designed for use as a lab. Depending on curriculum, this module could be considered to be at an "introductory" or "intermediate" level.

Description and Teaching Materials

You can visit the module in your browser:

Multicore Programming with OpenMP

or you can download the module in either PDF format or latex format.

PDF Format: Multicore Programming with OpenMP.pdf.
Latex Format: Multicore Programming with OpenMP.tar.gz.
Word Format: Multicore Programming with OpenMP.docx.

Teaching Notes and Tips


We have assessment instruments designed to be given before and after this module.

References and Resources

See more Modules »

Comment? Start the discussion about Multicore Programming with OpenMP