Jump to content
 







Main menu
   


Navigation  



Main page
Contents
Current events
Random article
About Wikipedia
Contact us
Donate
 




Contribute  



Help
Learn to edit
Community portal
Recent changes
Upload file
 








Search  

































Create account

Log in
 









Create account
 Log in
 




Pages for logged out editors learn more  



Contributions
Talk
 



















Contents

   



(Top)
 


1 Overview  





2 Library contents  





3 See also  





4 Notes  





5 References  





6 External links  














Threading Building Blocks






Čeština
Deutsch
Ελληνικά
Español
Français


Polski
Русский
Українська
 

Edit links
 









Article
Talk
 

















Read
Edit
View history
 








Tools
   


Actions  



Read
Edit
View history
 




General  



What links here
Related changes
Upload file
Special pages
Permanent link
Page information
Cite this page
Get shortened URL
Download QR code
Wikidata item
 




Print/export  



Download as PDF
Printable version
 
















Appearance
   

 






From Wikipedia, the free encyclopedia
 


Threading Building Blocks
Developer(s)Intel
Stable release

2021.8 / February 17, 2023; 16 months ago (2023-02-17)[1]

Repository
Written inC++
Operating systemFreeBSD, Linux, Solaris, macOS, Windows, Android
Typelibraryorframework
Licensedual: commercial / open source (Apache 2.0), plus Freeware[2]
Websitegithub.com/oneapi-src/oneTBB
intel.com/oneTBB

oneAPI Threading Building Blocks (oneTBB; formerly Threading Building Blocks or TBB), is a C++ template library developed by Intel for parallel programmingonmulti-core processors. Using TBB, a computation is broken down into tasks that can run in parallel. The library manages and schedules threads to execute these tasks.

Overview[edit]

A oneTBB program creates, synchronizes, and destroys graphs of dependent tasks according to algorithms, i.e. high-level parallel programming paradigms (a.k.a. Algorithmic Skeletons). Tasks are then executed respecting graph dependencies. This approach groups TBB in a family of techniques for parallel programming aiming to decouple the programming from the particulars of the underlying machine.

oneTBB implements work stealing to balance a parallel workload across available processing cores in order to increase core utilization and therefore scaling. Initially, the workload is evenly divided among the available processor cores. If one core completes its work while other cores still have a significant amount of work in their queue, oneTBB reassigns some of the work from one of the busy cores to the idle core. This dynamic capability decouples the programmer from the machine, allowing applications written using the library to scale to utilize the available processing cores with no changes to the source code or the executable program file. In a 2008 assessment of the work stealing implementation in TBB, researchers from Princeton University found that it was suboptimal for large numbers of processors cores, causing up to 47% of computing time spent in scheduling overhead when running certain benchmarks on a 32-core system.[3]

oneTBB, like the STL (and the part of the C++ standard library based on it), uses templates extensively. This has the advantage of low-overhead polymorphism, since templates are a compile-time construct which modern C++ compilers can largely optimize away.

oneTBB is available commercially as a binary distribution with support,[4] and as open-source software in both source and binary forms.

oneTBB does not provide guarantees of determinism or freedom from data races.[5]

Library contents[edit]

oneTBB is a collection of components for parallel programming:

See also[edit]

Notes[edit]

  1. ^ "oneAPI Threading Building Blocks Github Releases". GitHub.
  • ^ "No Cost Options for Intel Support yourself, Royalty-Free".
  • ^ Contreras, Gilberto; Martonosi, Margaret (2008). Characterizing and improving the performance of Intel Threading Building Blocks (PDF). IEEE Int'l Symp. on Workload Characterization.
  • ^ https://software.intel.com/en-us/intel-tbb Intel Threading Building Blocks Commercial Version Homepage
  • ^ Bocchino Jr., Robert L.; Adve, Vikram S.; Adve, Sarita V.; Snir, Marc (2009). Parallel Programming Must Be Deterministic by Default. USENIX Workshop on Hot Topics in Parallelism.
  • References[edit]

    External links[edit]


    Retrieved from "https://en.wikipedia.org/w/index.php?title=Threading_Building_Blocks&oldid=1163514220"

    Categories: 
    Concurrent programming libraries
    Application programming interfaces
    C++ programming language family
    Generic programming
    Threads (computing)
    C++ libraries
    Intel software
    Hidden categories: 
    Articles with short description
    Short description matches Wikidata
    Articles lacking reliable references from January 2016
    All articles lacking reliable references
    Official website different in Wikidata and Wikipedia
     



    This page was last edited on 5 July 2023, at 09:58 (UTC).

    Text is available under the Creative Commons Attribution-ShareAlike License 4.0; additional terms may apply. By using this site, you agree to the Terms of Use and Privacy Policy. Wikipedia® is a registered trademark of the Wikimedia Foundation, Inc., a non-profit organization.



    Privacy policy

    About Wikipedia

    Disclaimers

    Contact Wikipedia

    Code of Conduct

    Developers

    Statistics

    Cookie statement

    Mobile view



    Wikimedia Foundation
    Powered by MediaWiki