diff --git a/CHANGES b/CHANGES index 79bb6754b8..cc5e720f2e 100644 --- a/CHANGES +++ b/CHANGES @@ -2,6 +2,21 @@ The list of most significant changes made over time in Intel(R) Threading Building Blocks (Intel(R) TBB). +Intel TBB 2020 +TBB_INTERFACE_VERSION == 11100 + +Changes (w.r.t. Intel TBB 2019 Update 9): + +- Extended task_arena interface to simplify development of NUMA-aware + applications. +- Added warning notifications when the deprecated functionality is used. + +Open-source contributions integrated: + +- Fixed various build warnings + (https://github.com/intel/tbb/pull/179) by Raf Schietekat. + +------------------------------------------------------------------------ Intel TBB 2019 Update 9 TBB_INTERFACE_VERSION == 11009 @@ -13,7 +28,7 @@ Changes (w.r.t. Intel TBB 2019 Update 8): Preview Features: -- Added isolated_task_group class that allows multiple threads to add +- Added isolated_task_group class that allows multiple threads to add and execute tasks sharing the same isolation. - Extended the flow graph API to simplify connecting nodes. - Added erase() by heterogeneous keys for concurrent ordered containers. @@ -27,6 +42,9 @@ Bugs fixed: - Fixed a bug in the merge() method of concurrent unordered containers. - Fixed behavior of a continue_node that follows buffering nodes. +- Fixed compilation error caused by missed stdlib.h when CMake + integration is used (https://github.com/intel/tbb/issues/195). + Inspired by Andrew Penkrat. Open-source contributions integrated: diff --git a/Makefile b/Makefile index 3603007ed7..116cf9edfc 100644 --- a/Makefile +++ b/Makefile @@ -13,6 +13,7 @@ # limitations under the License. tbb_root?=. +cfg?=release include $(tbb_root)/build/common.inc .PHONY: default all tbb tbbmalloc tbbproxy test examples @@ -25,25 +26,22 @@ default: tbb tbbmalloc $(if $(use_proxy),tbbproxy) all: tbb tbbmalloc tbbproxy test examples tbb: mkdir - $(MAKE) -C "$(work_dir)_debug" -r -f $(tbb_root)/build/Makefile.tbb cfg=debug $(MAKE) -C "$(work_dir)_release" -r -f $(tbb_root)/build/Makefile.tbb cfg=release tbbmalloc: mkdir - $(MAKE) -C "$(work_dir)_debug" -r -f $(tbb_root)/build/Makefile.tbbmalloc cfg=debug malloc $(MAKE) -C "$(work_dir)_release" -r -f $(tbb_root)/build/Makefile.tbbmalloc cfg=release malloc tbbproxy: mkdir - $(MAKE) -C "$(work_dir)_debug" -r -f $(tbb_root)/build/Makefile.tbbproxy cfg=debug tbbproxy $(MAKE) -C "$(work_dir)_release" -r -f $(tbb_root)/build/Makefile.tbbproxy cfg=release tbbproxy +tbbbind: mkdir + $(MAKE) -C "$(work_dir)_release" -r -f $(tbb_root)/build/Makefile.tbbbind cfg=release tbbbind + test: tbb tbbmalloc $(if $(use_proxy),tbbproxy) - -$(MAKE) -C "$(work_dir)_debug" -r -f $(tbb_root)/build/Makefile.tbbmalloc cfg=debug malloc_test - -$(MAKE) -C "$(work_dir)_debug" -r -f $(tbb_root)/build/Makefile.test cfg=debug -$(MAKE) -C "$(work_dir)_release" -r -f $(tbb_root)/build/Makefile.tbbmalloc cfg=release malloc_test -$(MAKE) -C "$(work_dir)_release" -r -f $(tbb_root)/build/Makefile.test cfg=release rml: mkdir - $(MAKE) -C "$(work_dir)_debug" -r -f $(tbb_root)/build/Makefile.rml cfg=debug $(MAKE) -C "$(work_dir)_release" -r -f $(tbb_root)/build/Makefile.rml cfg=release examples: tbb tbbmalloc @@ -60,8 +58,6 @@ doxygen: clean: clean_examples $(shell $(RM) $(work_dir)_release$(SLASH)*.* >$(NUL) 2>$(NUL)) $(shell $(RD) $(work_dir)_release >$(NUL) 2>$(NUL)) - $(shell $(RM) $(work_dir)_debug$(SLASH)*.* >$(NUL) 2>$(NUL)) - $(shell $(RD) $(work_dir)_debug >$(NUL) 2>$(NUL)) @echo clean done clean_examples: @@ -69,8 +65,7 @@ clean_examples: mkdir: $(shell $(MD) "$(work_dir)_release" >$(NUL) 2>$(NUL)) - $(shell $(MD) "$(work_dir)_debug" >$(NUL) 2>$(NUL)) - @echo Created $(work_dir)_release and ..._debug directories + @echo Created the $(work_dir)_release directory info: @echo OS: $(tbb_os) @@ -78,4 +73,3 @@ info: @echo compiler=$(compiler) @echo runtime=$(runtime) @echo tbb_build_prefix=$(tbb_build_prefix) - diff --git a/README.md b/README.md index 926a964e40..d2ebc0ac1d 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@ -# Threading Building Blocks 2019 Update 9 -[![Stable release](https://img.shields.io/badge/version-2019_U9-green.svg)](https://github.com/intel/tbb/releases/tag/2019_U9) +# Threading Building Blocks 2020 +[![Stable release](https://img.shields.io/badge/version-2020-green.svg)](https://github.com/intel/tbb/releases/tag/2020) [![Apache License Version 2.0](https://img.shields.io/badge/license-Apache_2.0-green.svg)](LICENSE) Threading Building Blocks (TBB) lets you easily write parallel C++ programs that take diff --git a/build/Makefile.tbbbind b/build/Makefile.tbbbind new file mode 100644 index 0000000000..21a6f1bd6a --- /dev/null +++ b/build/Makefile.tbbbind @@ -0,0 +1,69 @@ +# Copyright (c) 2005-2019 Intel Corporation +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +#------------------------------------------------------------------------------ +# Define rules for making the tbbbind shared library. +#------------------------------------------------------------------------------ + +tbb_root ?= "$(TBBROOT)" +BUILDING_PHASE=1 +include $(tbb_root)/build/common.inc +CPLUS_FLAGS += $(SDL_FLAGS) +DEBUG_SUFFIX=$(findstring _debug,_$(cfg)) + +#------------------------------------------------------------ +# Define static pattern rules dealing with .cpp source files +#------------------------------------------------------------ +$(warning CONFIG: cfg=$(cfg) arch=$(arch) compiler=$(compiler) target=$(target) runtime=$(runtime)) + +.PHONY: tbbbind +.PRECIOUS: %.$(OBJ) + +VPATH = $(tbb_root)/src/tbb/$(ASSEMBLY_SOURCE) $(tbb_root)/src/tbb $(tbb_root)/src/old $(tbb_root)/src/rml/client + +CPLUS_FLAGS += $(PIC_KEY) $(DSE_KEY) + +# Suppress superfluous warnings for tbbbind compilation +WARNING_KEY += $(WARNING_SUPPRESS) + +include $(tbb_root)/build/common_rules.inc + +TBBBIND.OBJ = tbbbind.$(OBJ) + +ifneq (,$(TBBBIND.DEF)) +tbbbind.def: $(TBBBIND.DEF) + $(CPLUS) $(PREPROC_ONLY) $< $(CPLUS_FLAGS) $(INCLUDES) > $@ + +LIB_LINK_FLAGS += $(EXPORT_KEY)tbbbind.def +$(TBBBIND.DLL): tbbbind.def +endif + +ifneq (,$(TBBBIND.DLL)) +$(TBBBIND.DLL): BUILDING_LIBRARY = $(TBBBIND.DLL) +$(TBBBIND.DLL): $(TBBBIND.OBJ) $(TBBBIND_NO_VERSION.DLL) + $(LIB_LINK_CMD) $(LIB_OUTPUT_KEY)$(TBBBIND.DLL) $(TBBBIND.OBJ) $(HWLOC.LIB) $(LINK_TBB.LIB) $(LIB_LINK_FLAGS) +endif + +ifneq (,$(TBBBIND_NO_VERSION.DLL)) +$(TBBBIND_NO_VERSION.DLL): + echo "INPUT ($(TBBBIND.DLL))" > $(TBBBIND_NO_VERSION.DLL) +endif + +tbbbind: $(TBB.DLL) $(TBBBIND.DLL) + +#clean: +# $(RM) *.$(OBJ) *.$(DLL) *.res *.map *.ilk *.pdb *.exp *.manifest *.tmp *.d core core.*[0-9][0-9] *.ver + +# Include automatically generated dependencies +-include *.d diff --git a/build/Makefile.test b/build/Makefile.test index 4eb0010a31..f63fc44681 100644 --- a/build/Makefile.test +++ b/build/Makefile.test @@ -252,6 +252,8 @@ endif test_opencl_node.$(TEST_EXT): LIBS += $(OPENCL.LIB) +test_arena_constraints_hwloc.$(TEST_EXT): LIBS += $(HWLOC.LIB) + $(TEST_TBB_PLAIN.EXE) $(TEST_TBB_SPECIAL.EXE): WARNING_KEY += $(TEST_WARNING_KEY) # Run tests that are in SCHEDULER_DIRECTLY_INCLUDED and TEST_TBB_PLAIN.EXE but not in skip_tests (which is specified by user) diff --git a/build/index.html b/build/index.html index ae047697da..d11f9a1d72 100644 --- a/build/index.html +++ b/build/index.html @@ -18,6 +18,9 @@

Files

Makefile.tbbmalloc
Main Makefile to build the Intel TBB scalable memory allocator library as well as its tests. Invoked via 'make tbbmalloc' from top-level Makefile. +
Makefile.tbbbind +
Main Makefile to build the tbbbind library. + Invoked via 'make tbbbind' from top-level Makefile
Makefile.test
Main Makefile to build and run the tests for the Intel TBB library. Invoked via 'make test' from top-level Makefile. @@ -73,7 +76,7 @@

Software prerequisites:

  • Explicitly specify the architecture when invoking GNU make, e.g. make arch=ia32. -

    The default make target will build the release and debug versions of the Intel TBB library.

    +

    The default make target will build the release version of the Intel TBB library.

    Other targets are available in the top-level Makefile. You might find the following targets useful: