Changes (w.r.t. Intel TBB 4.2 Update 3):
- Added possibility to specify floating-point settings at invocation of most parallel algorithms (including flow::graph) via task_group_context.
- Added dynamic replacement of malloc_usable_size() under Linux*/Android* and dlmalloc_usable_size() under Android*.
- Added new methods to concurrent_vector:
grow_by() that appends a sequence between two given iterators;
grow_to_at_least() that initializes new elements with a given value.
- Improved affinity_partitioner for better performance on balanced workloads.
- Improvements in the task scheduler, including better scalability when threads search for a task arena, and better diagnostics.
- Improved allocation performance for workloads that do intensive allocation/releasing of same-size objects larger than ~8KB from multiple threads.
- Exception support is enabled by default for 32-bit MinGW compilers.
- The tachyon example for Android* can be built for all targets supported by the installed NDK.
- Added Windows Store* version of the tachyon example.
- GettingStarted/sub_string_finder example ported to offload execution on Windows* for Intel(R) Many Integrated Core Architecture.
- Removed task_scheduler_observer::on_scheduler_leaving() callback.
- Added task_scheduler_observer::may_sleep() callback.
- The CPF or_node has been renamed indexer_node. The input to indexer_node is now a list of types. The output of indexer_node is a tagged_msg type composed of a tag and a value. For indexer_node, the tag is a size_t.
- Fixed data races in preview extensions of task_scheduler_observer.
- Added noexcept(false) for destructor of task_group_base to avoid crash on cancelation of structured task group in C++11.
Open-source contributions integrated:
- Improved concurrency detection for BG/Q, and other improvements by Raf Schietekat.
- Fix for crashes in enumerable_thread_specific in case if a contained object is too big to be constructed on the stack by Adrien Guinet.