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.
- 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.
Assessment
References and Resources
Comment? Start the discussion about Multi-core programming with Intel's Manycore Testing Lab (using Threading Building Blocks)

