oneAPI Thread Building Blocks (tbb) in Fedora
The oneAPI Threading Building Blocks (oneTBB) is a C++ runtime library that abstracts the low-level threading details necessary for optimal multi-core performance. It uses common C++ templates and coding style to eliminate tedious threading implementation work.
oneTBB requires fewer lines of code to achieve parallelism than other threading models. The applications you write are portable across platforms. Since the library is also inherently scalable, no code maintenance is required as more processor cores become available.
Compat TBB in Fedora
The introduction of oneTBB marked a distinct change in the API And ABI of the library. In order to facilitate a transition from the traditional TBB API to the oneTBB API a compat package is currently being worked on to allow tbb2020.3
(compat) and tbb
(new oneTBB) to be installed and used by developers. This work is still in progress.
Rebasing oneTBB in Fedora
The oneTBB package (tbb) in Fedora is rebased when a new version of oneTBB is released (https://github.com/oneapi-src/oneTBB). The intent is stay up to date with upstream oneTBB changes, but at the same time balance that with the effort required to do the update.
Rebasing oneTBB is a straight forward process since many of the oneTBB dependencies only exist in user applications and not in the distribution itself.
When oneTBB is rebased in Fedora the failures caused by the rebase will not immediately receive a root cause analysis, but will be filed as bugs against the packages that fail to build from source. If a pattern of failures is seen then a root cause analysis will be carried out to see if an issue exists between oneTBB, the native system C++ compiler, or the C++ Standard Library.