The included source code implements a parallel Radix Exchange Sort algorithm, as described in the included problem description text file. Two separate approaches are described and analyzed in the solution write-up. The code uses Intel Threading Building Blocks (TBB) parallel algorithms parallel_for and parallel_reduce to implement the parallelism. The code was intended for Windows OS and includes Microsoft Visual Studio solution and project files to build the application.
The included source code implements a parallel Radix Exchange Sort algorithm, as described in the included problem description text file. The serial algorithm is written in a recursive fashion in order to utilize Intel Threading Building Blocks (TBB) tasks for the parallelism. The code was intended for Linux OS and includes a makefile to build the application.
This tutorial is an introduction to Intel's Threading Building Blocks (Intel's TBB), a commercially supported open-source C++ template library for shared-memory parallel programming, notably for multi-core processors. Though threads are a popular means of shared-memory parallel programming, they are a low-level unstructured construct whose undisciplined use can cause both correctness and performance problems. This tutorial explains these problems and how TBB addresses them, without resorting to special compilers or languages.
The paper summarizes an assignment on the European Football Elimination Problem which was given to my students in this year\'s lecture on parallel and distributed algorithms. The students were asked to use Intel\'s TBB 3.0 to solve the assignment. The material also contains an application named Team Planer which can be used to generate input files for testing purposes.
This is a complete courseware module, containing lecture and the lab exercises. This module introduces the major components of the Intel® Threading Building Blocks Library – The current official release version 2.0 is featured Content: The major topics of this module include: – Generic Parallel Algorithms (2 labs) – Task Scheduler (lab) – Highly Concurrent Containers (lab) – Low-level Synchronization Primitives – Scalable Memory Allocation (lab)