Multicore Desktop Programming with Intel Threading Building Blocks W. Kim and M. Voss. IEEE Software, vol. 28, no. 1, pp. 23-31, Jan.-Feb. 2011, doi: 10.1109/MS.2011.12.

Summary

This article talks about Intel’s Threading Building Blocks (TBB) which is C++ template library which is based on a task-based, modular programming model that uses a work-stealing algorithm for developing composable execution environments for desktop applications. The article describes the Task Interface, Scheduling implemented by TBB as well as the in-built parallel programs, types of concurrent, synchronisation containers present and other tools, viz. mutex/lock mechanisms, atomic template class and thread-local storage. Although a detailed performance analysis is not provided, included graph shows linearly increasing speed-up as the number of cores increased.

Strengths

  • Article provides clear, accessible overview of the Intel TBB’s salient features and when to use them.

    Weaknesses

  • Performance section is quite sparse - only 3 programs were shown, which all implement parallel algorithms, and no explanation or interpretation of the performance was given.
  • There is no supporting evidence provided on how Intel TBB helps in running several heterogenous applications simultaneously, which was the problem established at the start of the article.

    Open Points / Problems:

  • It would be useful to explore how much the target machine’s memory specs affect the performance improvements of TBB, as in several places, for simplicity, the authors have assumed it works in an ideal fashion.