What’s new in Intel® Threading Building Blocks 4.2 update 1?

Intel® Threading Building Blocks (Intel® TBB) was recently updated to version 4.2 update 1. This blog post points out some of the new features. You can find the full list of changes here.

Intel® TBB 4.2 update 1 has initial support for Microsoft* Visual Studio* 2013 Preview. Additionally, C++11 features available in Intel(R) C++ Compiler 14.0 have been enabled. You can now use “initializer lists” for containers and constructors for atomic variables with the Intel® compiler (see notes about the features here).

Users of Intel TBB scalable allocator can now reduce the memory footprint by setting a soft limit for the amount of allocated memory. This can be done using the scalable_allocation_mode (TBBMALLOC_SET_SOFT_HEAP_LIMIT, <size>) method. When the limit is reached memory is released from internal buffers in tbbmalloc, decreasing memory consumption. This doesn’t prevent further allocations, just clears the buffers.

There are changes for the task_arena class. You no longer need to link a preview library to use task_arena, though it is still a community preview feature. The method task_arena::current_slot() now returns -1 if the task scheduler is not initialized in the thread. This method can be used, for example, by a task_scheduler_observer to pin threads entering an arena to specific hardware or by the user to check if Intel TBB is initialized in the thread.

Find the new Intel TBB 4.2 update 1 from commercial and open source sites.