Skip to content
  • Hans Johnson's avatar
    ENH: Update to TBB 2017 (2016-09-08 release) · e32d75f8
    Hans Johnson authored and Wenzel Jakob's avatar Wenzel Jakob committed
    The new release TBB is now under a new more
    open license.
                                     Apache License
                               Version 2.0, January 2004
                            http://www.apache.org/licenses/
    
    The list of most significant changes made over time in
    Intel(R) Threading Building Blocks (Intel(R) TBB).
    
    Intel TBB 2017
    TBB_INTERFACE_VERSION == 9100
    
    Changes (w.r.t. Intel TBB 4.4 Update 5):
    
    - static_partitioner class is now a fully supported feature.
    - async_node class is now a fully supported feature.
    - Improved dynamic memory allocation replacement on Windows* OS to skip
        DLLs for which replacement cannot be done, instead of aborting.
    - Intel TBB no longer performs dynamic memory allocation replacement
        for Microsoft* Visual Studio* 2008.
    - For 64-bit platforms, quadrupled the worst-case limit on the amount
        of memory the Intel TBB allocator can handle.
    - Added TBB_USE_GLIBCXX_VERSION macro to specify the version of GNU
        libstdc++ when it cannot be properly recognized, e.g. when used
        with Clang on Linux* OS. Inspired by a contribution from David A.
    - Added graph/stereo example to demostrate tbb::flow::async_msg.
    - Removed a few cases of excessive user data copying in the flow graph.
    - Reworked split_node to eliminate unnecessary overheads.
    - Added support for C++11 move semantics to the argument of
        tbb::parallel_do_feeder::add() method.
    - Added C++11 move constructor and assignment operator to
        tbb::combinable template class.
    - Added tbb::this_task_arena::max_concurrency() function and
        max_concurrency() method of class task_arena returning the maximal
        number of threads that can work inside an arena.
    - Deprecated tbb::task_arena::current_thread_index() static method;
        use tbb::this_task_arena::current_thread_index() function instead.
    - All examples for commercial version of library moved online:
        https://software.intel.com/en-us/product-code-samples. Examples are
        available as a standalone package or as a part of Intel(R) Parallel
        Studio XE or Intel(R) System Studio Online Samples packages.
    
    Changes affecting backward compatibility:
    
    - Renamed following methods and types in async_node class:
        Old                   New
        async_gateway_type => gateway_type
        async_gateway()    => gateway()
        async_try_put()    => try_put()
        async_reserve()    => reserve_wait()
        async_commit()     => release_wait()
    - Internal layout of some flow graph nodes has changed; recompilation
        is recommended for all binaries that use the flow graph.
    
    Preview Features:
    
    - Added template class streaming_node to the flow graph API. It allows
        a flow graph to offload computations to other devices through
        streaming or offloading APIs.
    - Template class opencl_node reimplemented as a specialization of
        streaming_node that works with OpenCL*.
    - Added tbb::this_task_arena::isolate() function to isolate execution
        of a group of tasks or an algorithm from other tasks submitted
        to the scheduler.
    
    Bugs fixed:
    
    - Added a workaround for GCC bug #62258 in std::rethrow_exception()
        to prevent possible problems in case of exception propagation.
    - Fixed parallel_scan to provide correct result if the initial value
        of an accumulator is not the operation identity value.
    - Fixed a memory corruption in the memory allocator when it meets
        internal limits.
    - Fixed the memory allocator on 64-bit platforms to align memory
        to 16 bytes by default for all allocations bigger than 8 bytes.
    - As a workaround for crashes in the Intel TBB library compiled with
        GCC 6, added -flifetime-dse=1 to compilation options on Linux* OS.
    - Fixed a race in the flow graph implementation.
    
    Open-source contributions integrated:
    
    - Enabling use of C++11 'override' keyword by Raf Schietekat.
    
    ------------------------------------------------------------------------
    e32d75f8
This project is licensed under the Apache License 2.0. Learn more
Loading