Multicore Programming with OpenMP
Summary
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
- Students should be able to identify issues with attempting to use parallel computing techniques when using multiple threads
- Students should be able to identify differences in performance in manycore computing
Context for Use
Description and Teaching Materials
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
- If you are interested in using Intel®'s Manycore Testing Lab, you must have an Intel® account and apply to join their Manycore Testing Lab program. To access Intel®'s Manycore Testing Lab program, visit Intel®'s MTL page (now unavailable).
- For this version of the module using OpenMP, the machines in your computer lab must have a C++ compiler that is (GNU's gcc compiler is fine.) If you are unsure, visit OpenMP's list of compatible C++ compilers. There is another version of this lab exercise that uses Intel®'s Threaded Building Blocks for parallelization.
- Note: This module has been written for and tested on lab machines using Linux-based operating systems. In addition, students will need to have access to non-lab machines, as we are using a Cisco VPN client to access the Manycore Testing Lab and this blocks other network accesses. Instructions for downloading and installing Cisco VPN client is found in the handouts.
- For students to access the MTL in the lab, you will need to distribute accountnames and passwords provided by Intel to students.
Assessment
References and Resources
Comment? Start the discussion about Multicore Programming with OpenMP