Name Date Size #Lines LOC

..12-Feb-2024-

common/H12-Feb-2024-3,2222,523

concurrent_hash_map/H12-Feb-2024-362282

concurrent_priority_queue/H12-Feb-2024-419346

getting_started/H12-Feb-2024-404293

graph/H12-Feb-2024-11,1158,228

migration/H12-Feb-2024-538363

parallel_for/H12-Feb-2024-76,60766,640

parallel_for_each/H12-Feb-2024-466282

parallel_pipeline/H12-Feb-2024-411286

parallel_reduce/H12-Feb-2024-2,0331,435

task_arena/H12-Feb-2024-858584

task_group/H12-Feb-2024-482374

test_all/H12-Feb-2024-594433

.clang-formatH A D12-Feb-20244.3 KiB160158

CMakeLists.txtH A D12-Feb-20242.5 KiB7960

README.mdH A D12-Feb-20243 KiB4339

README.md

1# Code Samples of oneAPI Threading Building Blocks (oneTBB)
2This directory contains example usages of oneAPI Threading Building Blocks.
3
4| Code sample name | Description
5|:--- |:---
6| getting_started/sub_string_finder | Example referenced by the [oneAPI Threading Building Blocks Get Started Guide](https://oneapi-src.github.io/oneTBB/GSG/get_started.html#get-started-guide). Finds the largest matching substrings.
7| concurrent_hash_map/count_strings | Concurrently inserts strings into a `concurrent_hash_map` container.
8| concurrent_priority_queue/shortpath | Solves the single source shortest path problem using a  `concurrent_priority_queue` container.
9| graph/binpack | A solution to the binpacking problem using a `queue_node`, a `buffer_node`, and `function_node`s.
10| graph/cholesky | Several versions of Cholesky Factorization algorithm implementation.
11| graph/dining_philosophers | An implementation of dining philosophers in a graph using the reserving `join_node`.
12| graph/fgbzip2 | A parallel implementation of bzip2 block-sorting file compressor.
13| graph/logic_sim | An example of a collection of digital logic gates that can be easily composed into larger circuits.
14| graph/som | An example of a Kohonen Self-Organizing Map using cancellation.
15| parallel_for/game_of_life | Game of life overlay.
16| parallel_for/polygon_overlay | Polygon overlay.
17| parallel_for/seismic | Parallel seismic wave simulation.
18| parallel_for/tachyon | Parallel 2-D raytracer/renderer.
19| parallel_for_each/parallel_preorder | Parallel preorder traversal of a graph.
20| parallel_pipeline/square | Another string transformation example that squares numbers read from a file.
21| parallel_reduce/convex_hull | Parallel version of convex hull algorithm (quick hull).
22| parallel_reduce/pi | Parallel version of calculating π by numerical integration.
23| parallel_reduce/primes | Parallel version of the Sieve of Eratosthenes.
24| task_arena/fractal |The example calculates two classical Mandelbrot fractals with different concurrency limits.
25| task_group/sudoku | Compute all solutions for a Sudoku board.
26| test_all/fibonacci | Compute Fibonacci numbers in different ways.
27
28## System Requirements
29Refer to the [System Requirements](https://github.com/oneapi-src/oneTBB/blob/master/SYSTEM_REQUIREMENTS.md) for the list of supported hardware and software.
30
31### Graphical User Interface (GUI)
32Some examples (e.g., fractal, seismic, tachyon, polygon_overlay) support different GUI modes, which may be defined via the `EXAMPLES_UI_MODE` CMake variable.
33Supported values are:
34- Cross-platform:
35    - `con` - Console mode (Default).
36- Windows* OS:
37    - `gdi` - `GDI+` based implementation.
38    - `d2d` - `Direct 2D` based implementation. May offer superior performance but can only be used if the Microsoft* DirectX* SDK is installed on your system(`DXSDK_DIR` should be defined).
39- Linux* OS:
40    - `x` - `X11` based implementation. Also `libXext` may be required to display the output correctly.
41- macOS*:
42    - `mac` - `OpenGL` based implementation. Also requires the `Foundation` and `Cocoa` libraries availability.
43