Multi-core programming with Intel's Manycore Testing Lab (using Threading Building Blocks)

Professor Richard Brown, St. Olaf College

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

This module can be taught in a C++-based course or in a course in which students have had prior C++ experience. It is designed for use as a lab. Depending on curriculum, this module could be considered "introductory" or "intermediate".

Description and Teaching Materials

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.

Assessment

Assessment to be completed later...

References and Resources

Resources to be completed later...


Comment? Start the discussion about Multi-core programming with Intel's Manycore Testing Lab (using Threading Building Blocks)