Skip to content

Commit 0500503

Browse files
authored
Merge pull request #2447 from stan-dev/feature/update-tbb2020-3
Update tbb to 2020 3
2 parents a426eea + 9730ca7 commit 0500503

623 files changed

Lines changed: 12084 additions & 3092 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ Stan Math depends on four libraries:
2828
- Boost (version 1.75.0): [Boost Home Page](https://www.boost.org)
2929
- Eigen (version 3.3.9: [Eigen Home Page](https://eigen.tuxfamily.org/index.php?title=Main_Page)
3030
- SUNDIALS (version 5.7.0): [Sundials Home Page](https://computation.llnl.gov/projects/sundials/sundials-software)
31-
- Intel TBB (version 2019_U8): [Intel TBB Home Page](https://www.threadingbuildingblocks.org)
31+
- Intel TBB (version 2020.3): [Intel TBB Home Page](https://www.threadingbuildingblocks.org)
3232

3333
These are distributed under the `lib/` subdirectory. Only these
3434
versions of the dependent libraries have been tested with Stan Math.
@@ -92,7 +92,7 @@ statements are given to the compiler and the necessary libraries are
9292
linked: `~/stan-dev/math` and `~/stan-dev/math/lib/eigen_3.3.9` and
9393
`~/stan-dev/math/lib/boost_1.75.0` and
9494
`~/stan-dev/math/lib/sundials_5.7.0/include` and
95-
`~/stan-dev/math/lib/tbb_2019_U8/include`. The
95+
`~/stan-dev/math/lib/tbb_2020.3/include`. The
9696
`~/stan-dev/math/lib/tbb` directory is created by the `math-libs`
9797
makefile target automatically and contains the dynamically loaded
9898
Intel TBB library. The flags `-Wl,-rpath,...` instruct the linker to
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,8 @@ Thumbs.db
7777
################################
7878
CMakeCache.txt
7979
CMakeFiles/
80+
cmake/TBBConfig.cmake
81+
cmake/TBBConfigVersion.cmake
8082

8183
# Other #
8284
#########
@@ -85,3 +87,4 @@ CMakeFiles/
8587
.svn
8688
crash*
8789
*.tmp
90+
/.vs
Lines changed: 115 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,121 @@
22
The list of most significant changes made over time in
33
Intel(R) Threading Building Blocks (Intel(R) TBB).
44

5+
Intel TBB 2020 Update 3
6+
TBB_INTERFACE_VERSION == 11103
7+
8+
Changes (w.r.t. Intel TBB 2020 Update 2):
9+
10+
Changes affecting backward compatibility:
11+
12+
- Changed body type concept of the flow::input_node.
13+
Set TBB_DEPRECATED_INPUT_NODE_BODY to 1 to compile with the previous
14+
concept of the body type.
15+
16+
Bugs fixed:
17+
18+
- Fixed compilation errors in C++20 mode due to ambiguity of comparison
19+
operators. Inspired by Barry Revzin
20+
(https://github.com/oneapi-src/oneTBB/pull/251).
21+
22+
Open-source contributions integrated:
23+
24+
- Fixed an issue in TBBBuild.cmake that causes the build with no arguments
25+
to fail (https://github.com/oneapi-src/oneTBB/pull/233) by tttapa.
26+
- Added cmake/{TBBConfig,TBBConfigVersion}.cmake to Git ignore list
27+
(https://github.com/oneapi-src/oneTBB/pull/239) by Eisuke Kawashima.
28+
29+
------------------------------------------------------------------------
30+
Intel TBB 2020 Update 2
31+
TBB_INTERFACE_VERSION == 11102
32+
33+
Changes (w.r.t. Intel TBB 2020 Update 1):
34+
35+
- Cross-allocator copying constructor and copy assignment operator for
36+
concurrent_vector are deprecated.
37+
- Added input_node to the flow graph API. It acts like a source_node
38+
except for being inactive by default; source_node is deprecated.
39+
- Allocator template parameter for flow graph nodes is deprecated. Set
40+
TBB_DEPRECATED_FLOW_NODE_ALLOCATOR to 1 to avoid compilation errors.
41+
- Flow graph preview hetero-features are deprecated.
42+
43+
Bugs fixed:
44+
45+
- Fixed the task affinity mechanism to prevent unlimited memory
46+
consumption in case the number of threads is explicitly decreased.
47+
- Fixed memory leak related NUMA support functionality in task_arena.
48+
49+
------------------------------------------------------------------------
50+
Intel TBB 2020 Update 1
51+
TBB_INTERFACE_VERSION == 11101
52+
53+
Changes (w.r.t. Intel TBB 2020):
54+
55+
Preview features:
56+
57+
- The NUMA support library (tbbbind) no more depends on the main
58+
TBB library.
59+
60+
Bugs fixed:
61+
62+
- Fixed the issue of task_arena constraints not propagated on
63+
copy construction.
64+
- Fixed TBBGet.cmake script broken by TBB package name changes
65+
(https://github.com/intel/tbb/issues/209).
66+
67+
------------------------------------------------------------------------
68+
Intel TBB 2020
69+
TBB_INTERFACE_VERSION == 11100
70+
71+
Changes (w.r.t. Intel TBB 2019 Update 9):
72+
73+
- Extended task_arena interface to simplify development of NUMA-aware
74+
applications.
75+
- Added warning notifications when the deprecated functionality is used.
76+
77+
Open-source contributions integrated:
78+
79+
- Fixed various build warnings
80+
(https://github.com/intel/tbb/pull/179) by Raf Schietekat.
81+
82+
------------------------------------------------------------------------
83+
Intel TBB 2019 Update 9
84+
TBB_INTERFACE_VERSION == 11009
85+
86+
Changes (w.r.t. Intel TBB 2019 Update 8):
87+
88+
- Multiple APIs are deprecated. For details, please see
89+
Deprecated Features appendix in the TBB reference manual.
90+
- Added C++17 deduction guides for flow graph nodes.
91+
92+
Preview Features:
93+
94+
- Added isolated_task_group class that allows multiple threads to add
95+
and execute tasks sharing the same isolation.
96+
- Extended the flow graph API to simplify connecting nodes.
97+
- Added erase() by heterogeneous keys for concurrent ordered containers.
98+
- Added a possibility to suspend task execution at a specific point
99+
and resume it later.
100+
101+
Bugs fixed:
102+
103+
- Fixed the emplace() method of concurrent unordered containers to
104+
destroy a temporary element that was not inserted.
105+
- Fixed a bug in the merge() method of concurrent unordered
106+
containers.
107+
- Fixed behavior of a continue_node that follows buffering nodes.
108+
- Fixed compilation error caused by missed stdlib.h when CMake
109+
integration is used (https://github.com/intel/tbb/issues/195).
110+
Inspired by Andrew Penkrat.
111+
112+
Open-source contributions integrated:
113+
114+
- Added support for move-only types to tbb::parallel_pipeline
115+
(https://github.com/intel/tbb/pull/159) by Raf Schietekat.
116+
- Fixed detection of clang version when CUDA toolkit is installed
117+
(https://github.com/intel/tbb/pull/150) by Guilherme Amadio.
118+
119+
------------------------------------------------------------------------
5120
Intel TBB 2019 Update 8
6121
TBB_INTERFACE_VERSION == 11008
7122

Lines changed: 6 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# Copyright (c) 2005-2019 Intel Corporation
1+
# Copyright (c) 2005-2020 Intel Corporation
22
#
33
# Licensed under the Apache License, Version 2.0 (the "License");
44
# you may not use this file except in compliance with the License.
@@ -13,6 +13,7 @@
1313
# limitations under the License.
1414

1515
tbb_root?=.
16+
cfg?=release
1617
include $(tbb_root)/build/common.inc
1718
.PHONY: default all tbb tbbmalloc tbbproxy test examples
1819

@@ -25,25 +26,22 @@ default: tbb tbbmalloc $(if $(use_proxy),tbbproxy)
2526
all: tbb tbbmalloc tbbproxy test examples
2627

2728
tbb: mkdir
28-
$(MAKE) -C "$(work_dir)_debug" -r -f $(tbb_root)/build/Makefile.tbb cfg=debug
2929
$(MAKE) -C "$(work_dir)_release" -r -f $(tbb_root)/build/Makefile.tbb cfg=release
3030

3131
tbbmalloc: mkdir
32-
$(MAKE) -C "$(work_dir)_debug" -r -f $(tbb_root)/build/Makefile.tbbmalloc cfg=debug malloc
3332
$(MAKE) -C "$(work_dir)_release" -r -f $(tbb_root)/build/Makefile.tbbmalloc cfg=release malloc
3433

3534
tbbproxy: mkdir
36-
$(MAKE) -C "$(work_dir)_debug" -r -f $(tbb_root)/build/Makefile.tbbproxy cfg=debug tbbproxy
3735
$(MAKE) -C "$(work_dir)_release" -r -f $(tbb_root)/build/Makefile.tbbproxy cfg=release tbbproxy
3836

37+
tbbbind: mkdir
38+
$(MAKE) -C "$(work_dir)_release" -r -f $(tbb_root)/build/Makefile.tbbbind cfg=release tbbbind
39+
3940
test: tbb tbbmalloc $(if $(use_proxy),tbbproxy)
40-
-$(MAKE) -C "$(work_dir)_debug" -r -f $(tbb_root)/build/Makefile.tbbmalloc cfg=debug malloc_test
41-
-$(MAKE) -C "$(work_dir)_debug" -r -f $(tbb_root)/build/Makefile.test cfg=debug
4241
-$(MAKE) -C "$(work_dir)_release" -r -f $(tbb_root)/build/Makefile.tbbmalloc cfg=release malloc_test
4342
-$(MAKE) -C "$(work_dir)_release" -r -f $(tbb_root)/build/Makefile.test cfg=release
4443

4544
rml: mkdir
46-
$(MAKE) -C "$(work_dir)_debug" -r -f $(tbb_root)/build/Makefile.rml cfg=debug
4745
$(MAKE) -C "$(work_dir)_release" -r -f $(tbb_root)/build/Makefile.rml cfg=release
4846

4947
examples: tbb tbbmalloc
@@ -60,22 +58,18 @@ doxygen:
6058
clean: clean_examples
6159
$(shell $(RM) $(work_dir)_release$(SLASH)*.* >$(NUL) 2>$(NUL))
6260
$(shell $(RD) $(work_dir)_release >$(NUL) 2>$(NUL))
63-
$(shell $(RM) $(work_dir)_debug$(SLASH)*.* >$(NUL) 2>$(NUL))
64-
$(shell $(RD) $(work_dir)_debug >$(NUL) 2>$(NUL))
6561
@echo clean done
6662

6763
clean_examples:
6864
$(shell $(MAKE) -s -i -r -C examples -f Makefile tbb_root=.. clean >$(NUL) 2>$(NUL))
6965

7066
mkdir:
7167
$(shell $(MD) "$(work_dir)_release" >$(NUL) 2>$(NUL))
72-
$(shell $(MD) "$(work_dir)_debug" >$(NUL) 2>$(NUL))
73-
@echo Created $(work_dir)_release and ..._debug directories
68+
@echo Created the $(work_dir)_release directory
7469

7570
info:
7671
@echo OS: $(tbb_os)
7772
@echo arch=$(arch)
7873
@echo compiler=$(compiler)
7974
@echo runtime=$(runtime)
8075
@echo tbb_build_prefix=$(tbb_build_prefix)
81-
Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
# Threading Building Blocks 2019 Update 8
2-
[![Stable release](https://img.shields.io/badge/version-2019_U8-green.svg)](https://github.com/01org/tbb/releases/tag/2019_U8)
1+
# Threading Building Blocks 2020
2+
[![Stable release](https://img.shields.io/badge/version-2020.3-green.svg)](https://github.com/intel/tbb/releases/tag/v2020.3)
33
[![Apache License Version 2.0](https://img.shields.io/badge/license-Apache_2.0-green.svg)](LICENSE)
44

55
Threading Building Blocks (TBB) lets you easily write parallel C++ programs that take
@@ -8,16 +8,15 @@ full advantage of multicore performance, that are portable, composable and have
88
## Release Information
99
Here are the latest [Changes](CHANGES) and [Release Notes](doc/Release_Notes.txt) (contains system requirements and known issues).
1010

11-
Since [2018 U5](https://github.com/01org/tbb/releases/tag/2018_U5) TBB binary packages include [Parallel STL](https://github.com/intel/parallelstl) as a high-level component.
11+
Since [2018 U5](https://github.com/intel/tbb/releases/tag/2018_U5) TBB binary packages include [Parallel STL](https://github.com/intel/parallelstl) as a high-level component.
1212

1313
## Documentation
1414
* TBB [tutorial](https://software.intel.com/en-us/tbb-tutorial)
15-
* TBB general documentation: [stable](https://software.intel.com/en-us/tbb-documentation)
16-
and [latest](https://www.threadingbuildingblocks.org/docs/help/index.htm)
15+
* TBB general documentation: [stable](https://software.intel.com/en-us/tbb-documentation). For latest documentation please refer to the [latest](https://github.com/intel/tbb/releases/latest) release assets.
1716

1817
## Support
1918
Please report issues and suggestions via
20-
[GitHub issues](https://github.com/01org/tbb/issues) or start a topic on the
19+
[GitHub issues](https://github.com/intel/tbb/issues) or start a topic on the
2120
[TBB forum](http://software.intel.com/en-us/forums/intel-threading-building-blocks/).
2221

2322
## How to Contribute

0 commit comments

Comments
 (0)