Multi-core programming with Intel's Manycore Testing Lab (using Threading Building Blocks)
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 Threading Building Blocks parallel platform package; there is an alternative version of this module using OpenMP for those more familiar with that library.
Module Characteristics
Languages Supported: C++
Relevant Parallel Computing Concepts: Shared Memory
Recommended Teaching Level: Introductory, Intermediate
Possible Course Use:
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
You can visit the module in your browser:
Multi-core programming with Intel's Manycore Testing Lab (using Threading Building Blocks)
or you can download the module in either PDF format or latex format.
PDF Format: Multi-core programming with Intel's Manycore Testing Lab (using Threading Building Blocks).pdf.
Latex Format: Multi-core programming with Intel's Manycore Testing Lab (using Threading Building Blocks).tar.gz.
Word Format: Multi-core programming with Intel's Manycore Testing Lab (using Threading Building Blocks).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).
- This lab also requires Intel®'s Threaded Building Blocks C++ template library. There is another version of this lab exercise that uses OpenMP 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 during the lab, you will need to distribute accountnames and passwords given to you by Intel to students.