Skip to content

Commit 06ce621

Browse files
authored
Update documentation for oneTBB 2022.2.0 (#1767)
1 parent 4047578 commit 06ce621

21 files changed

+241
-1120
lines changed

doc/GSG/integrate.rst

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,8 @@ To integrate oneTBB, you need to:
1414
However, you can use CMake* and the pkg-config tool to simplify the process of integrating oneTBB into your project and handling its dependencies.
1515
See the instructions below to learn how to use the tools.
1616

17-
CMake*
18-
*******
17+
Integrate oneTBB with CMake*
18+
****************************
1919

2020
CMake* is a cross-platform build tool that helps you manage dependencies and build systems.
2121
Integrating oneTBB into your project using CMake*:

doc/GSG/next_steps.rst

Lines changed: 18 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,10 @@ After installing |short_name|, set the environment variables:
1919

2020
.. tip::
2121

22-
oneTBB can coordinate with Intel(R) OpenMP on CPU resources usage
23-
to avoid excessive oversubscription when both runtimes are used within a process.
24-
To enable this feature set up ``TCM_ENABLE`` environment variable to ``1``.
22+
oneTBB can coordinate with Intel(R) OpenMP on CPU resources usage to avoid
23+
excessive oversubscription when both runtimes are used within a process. To
24+
enable this feature set ``TCM_ENABLE`` environment variable to ``1``. For
25+
more details, see :ref:`avoid_cpu_overutilization`.
2526

2627

2728
Build and Run a Sample
@@ -125,34 +126,20 @@ Build and Run a Sample
125126

126127

127128

128-
Hybrid CPU and NUMA Support
129-
****************************
129+
Enable Hybrid CPU and NUMA Support
130+
***********************************
130131

131-
If you need NUMA/Hybrid CPU support in oneTBB, you need to make sure that HWLOC* is installed on your system.
132+
To support Hybrid CPU and NUMA platforms, oneTBB relies on the HWLOC* library.
133+
134+
The HWLOC functionality is accessed through a set of proxy libraries whose names begin with the ``tbbbind`` prefix. oneTBB automatically loads them at runtime when needed. To find and load these libraries successfully, locate them in the same directory as the oneTBB library itself (e.g., alongside ``libtbb.so`` or ``tbb.dll``).
135+
136+
Starting with oneTBB 2022.2, the default ``tbbbind`` library is statically linked with HWLOC 2.x. This version is used if a system-provided HWLOC cannot be found.
137+
138+
If you prefer to use a system-provided or custom-built version of HWLOC, make sure it is available in the search paths used by the dynamic loader. Consult your platform’s dynamic loader documentation for details about these paths (e.g., ``LD_LIBRARY_PATH`` on Linux* OS or ``PATH`` on Windows* OS).
139+
140+
To use a specific HWLOC version, place one of the following tbbbind variants in the same directory as the oneTBB library:
132141

133-
HWLOC* (Hardware Locality) is a library that provides a portable abstraction of the hierarchical topology of modern architectures (NUMA, hybrid CPU systems, etc). oneTBB relies on HWLOC* to identify the underlying topology of the system to optimize thread scheduling and memory allocation.
142+
* ``tbbbind_2_5`` — depends on HWLOC version 2.5 or higher. Use this version if hybrid CPU support is required.
143+
* ``tbbbind_2_0`` — depends on HWLOC versions 2.1 to 2.4.
134144

135-
Without HWLOC*, oneTBB may not take advantage of NUMA/Hybrid CPU support. Therefore, it's important to make sure that HWLOC* is installed before using oneTBB on such systems.
136-
137-
Check HWLOC* on the System
138-
^^^^^^^^^^^^^^^^^^^^^^^^^^^
139-
To check if HWLOC* is already installed on your system, run ``hwloc-ls``:
140-
141-
* For Linux* OS, in the command line.
142-
* For Windows* OS, in the command prompt.
143-
144-
If HWLOC* is installed, the command displays information about the hardware topology of your system. If it is not installed, you receive an error message saying that the command ``hwloc-ls`` could not be found.
145-
146-
.. note:: For Hybrid CPU support, make sure that HWLOC* is version 2.5 or higher. For NUMA support, install HWLOC* version 1.11 or higher.
147-
148-
Install HWLOC*
149-
^^^^^^^^^^^^^^
150-
151-
To install HWLOC*, visit the official Portable Hardware Locality website (https://www-lb.open-mpi.org/projects/hwloc/).
152-
153-
* For Windows* OS, binaries are available for download.
154-
* For Linux* OS, only the source code is provided and binaries should be built.
155-
156-
On Linux* OS, HWLOC* can be also installed with package managers, such as APT*, YUM*, etc. To do so, run: sudo apt install hwloc.
157-
158-
.. note:: For Hybrid CPU support, make sure that HWLOC* is version 2.5 or higher. For NUMA support, install HWLOC* version 1.11 or higher.
145+
.. tip:: To confirm that tbbbind is loaded successfully at runtime, set the environment variable ``TBB_VERSION=1`` before launching your application.

doc/conf.py

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -29,8 +29,8 @@
2929
project = u'Intel® oneAPI Threading Building Blocks (oneTBB)'
3030
else:
3131
project = u'oneTBB'
32-
copyright = u'Intel Corporation'
33-
author = u'Intel'
32+
copyright = u'UXL Foundation Contributors'
33+
author = u''
3434

3535
# The short X.Y version
3636
version = u''
@@ -137,10 +137,8 @@
137137
'use_issues_button': True,
138138
'use_edit_page_button': True,
139139
'repository_branch': 'master',
140-
}
141140

142-
if BUILD_TYPE != 'oneapi' and BUILD_TYPE != 'dita':
143-
html_theme_options["extra_footer"]="<div><a href='https://www.intel.com/content/www/us/en/privacy/intel-cookie-notice.html' data-cookie-notice='true'>Cookies</a> <a href='https://www.intel.com/content/www/us/en/privacy/intel-privacy-notice.html'>| Privacy</a> <a data-wap_ref='dns' id='wap_dns' href='https://www.intel.com/content/www/us/en/privacy/intel-cookie- notice.html'>| Do Not Share My Personal Information</a> </div><div>&copy; Intel Corporation. Intel, the Intel logo, and other Intel marks are trademarks of Intel Corporation or its subsidiaries. Other names and brands may be claimed as the property of others. No license (express or implied, by estoppel or otherwise) to any intellectual property rights is granted by this document, with the sole exception that code included in this document is licensed subject to the Zero-Clause BSD open source license (OBSD), <a href='http://opensource.org/licenses/0BSD'>http://opensource.org/licenses/0BSD</a>. </div><br><div>oneTBB is licensed under Apache License Version 2.0. Refer to the <a href='https://github.com/uxlfoundation/oneTBB/blob/master/LICENSE.txt'>LICENSE </a> file for the full license text and copyright notice.</div>"
141+
}
144142

145143

146144
# Add any paths that contain custom static files (such as style sheets) here,

doc/main/_templates/layout.html

Lines changed: 0 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1 @@
11
{% extends "!layout.html" %}
2-
{% block extrahead %}
3-
<script defer type="text/javascript" src="https://www.intel.com/content/dam/www/global/wap/performance-config.js" ></script>
4-
<script type="text/javascript">
5-
// Configure TMS settings
6-
var wapLocalCode = 'us-en'; // Dynamically set per localized site, see mapping table for values
7-
var wapSection = "oneapi-tbb"; // WAP team will give you a unique section for your site
8-
// Load TMS
9-
(function () {
10-
var url = 'https://www.intel.com/content/dam/www/global/wap/tms-loader.js'; // WAP file URL
11-
var po = document.createElement('script'); po.type = 'text/javascript'; po.async = true; po.src = url;
12-
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(po, s);
13-
})();
14-
</script>
15-
{% endblock %}

doc/main/examples_testing/CMakeLists.txt

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,3 +39,11 @@ file(GLOB_RECURSE DOC_EXAMPLES_LIST "${_reference_examples_path}/*.cpp" "${_user
3939
foreach(_doc_example_path IN LISTS DOC_EXAMPLES_LIST)
4040
add_doc_example(${_doc_example_path})
4141
endforeach()
42+
43+
find_package(OpenMP)
44+
if (OpenMP_FOUND)
45+
target_compile_options(tbb_mixing_other_runtimes_example PRIVATE "${OpenMP_CXX_FLAGS}")
46+
target_link_options(tbb_mixing_other_runtimes_example PRIVATE "${OpenMP_CXX_FLAGS}")
47+
endif()
48+
49+

doc/main/reference/blocking_terminate.rst

Lines changed: 0 additions & 165 deletions
This file was deleted.

0 commit comments

Comments
 (0)