Difference between revisions of "Threading Building Blocks"

From HPC users
Jump to navigationJump to search
(Created page with "== Overview == Intel Threading Building Blocks (Intel TBB) is a widely used, award-winning C++ template library for creating reliable, portable, and scalable parallel applica...")
 
 
(One intermediate revision by the same user not shown)
Line 2: Line 2:


Intel Threading Building Blocks (Intel TBB) is a widely used, award-winning C++ template library for creating reliable, portable, and scalable parallel applications. Use Intel TBB for a simple and rapid way of developing robust task-based parallel applications that scale to available processor cores, are compatible with multiple environments, and are easier to maintain. Intel TBB is the most proficient way to implement future-proof parallel applications that tap into the power and performance of multicore and manycore hardware platforms (taken from https://software.intel.com/en-us/tbb).
Intel Threading Building Blocks (Intel TBB) is a widely used, award-winning C++ template library for creating reliable, portable, and scalable parallel applications. Use Intel TBB for a simple and rapid way of developing robust task-based parallel applications that scale to available processor cores, are compatible with multiple environments, and are easier to maintain. Intel TBB is the most proficient way to implement future-proof parallel applications that tap into the power and performance of multicore and manycore hardware platforms (taken from https://software.intel.com/en-us/tbb).
== Installed version(s) ==
This version is installed and currently available
''on environment '''hpc-env/6.4''''':
'''tbb/2018_U3'''-GCCcore-6.4.0
'''tbb/2019.4.199'''
''on environment '''hpc-env/8.3''''':
'''tbb/2020.2'''-GCCcore-8.3.0


== How to use TBB ==
== How to use TBB ==


  module spider
To load the desired version of the module, use the command, e.g.
 
module load hpc-env 8.3
  module load tbb
 
For example, you can then use compilervars.sh:
''$ compilervars.sh''
compilervars.sh [-arch] <arch> [-platform <platform>]
  <arch> must be one of the following:
      ia32          : Set up for IA-32 target.
      intel64        : Set up for Intel(R)64 target.
  <platform> must be of the following:
      android        : Set to Android* target.
      linux          : Set to Linux* target.(default)
If the arguments to the sourced script are ignored (consult docs
for your shell) the alternative way to specify target is environment
variables COMPILERVARS_ARCHITECTURE to pass <arch> to the script
and COMPILERVARS_PLATFORM to pass <platform>


module load


== TBB Revamp announced ==
== TBB Revamp announced ==

Latest revision as of 11:46, 30 April 2020

Overview

Intel Threading Building Blocks (Intel TBB) is a widely used, award-winning C++ template library for creating reliable, portable, and scalable parallel applications. Use Intel TBB for a simple and rapid way of developing robust task-based parallel applications that scale to available processor cores, are compatible with multiple environments, and are easier to maintain. Intel TBB is the most proficient way to implement future-proof parallel applications that tap into the power and performance of multicore and manycore hardware platforms (taken from https://software.intel.com/en-us/tbb).


Installed version(s)

This version is installed and currently available

on environment hpc-env/6.4:

tbb/2018_U3-GCCcore-6.4.0
tbb/2019.4.199

on environment hpc-env/8.3:

tbb/2020.2-GCCcore-8.3.0


How to use TBB

To load the desired version of the module, use the command, e.g.

module load hpc-env 8.3
module load tbb

For example, you can then use compilervars.sh:

$ compilervars.sh
compilervars.sh [-arch] <arch> [-platform <platform>] 

  <arch> must be one of the following:
      ia32           : Set up for IA-32 target.
      intel64        : Set up for Intel(R)64 target.
  <platform> must be of the following:
      android        : Set to Android* target.
      linux          : Set to Linux* target.(default)

If the arguments to the sourced script are ignored (consult docs
for your shell) the alternative way to specify target is environment
variables COMPILERVARS_ARCHITECTURE to pass <arch> to the script
and COMPILERVARS_PLATFORM to pass <platform>


TBB Revamp announced

Intel has improved the usability and simplicity of Intel`s Threading Building Blocks (TBB) through changes centered around compliance with the latest C++ standards. We are evaluating the deprecation and eventual removal of some legacy TBB features that make TBB overly complex and are no longer necessary. Features under consideration for deprecation are mapped to newer and cleaner ways to obtain the same functionality, as described in the Revamp Document explains the specific details to change [PDF].

Documentation

A new book on TBB with the title "Pro TBB: C++ Parallel Programming with Threading Building Blocks" explains all the new features developed over the last decade. Written by Intel`s Michael Voss, and external collaborators Rafael Asenjo and James Reinders it is available as a free download at [1] as well as hardcopy from your favorite book sellers.