Intel® Threading Building Blocks

why Program running time is this?

The serial program and the parallel program running time is like the attachment,the parallel total time is less than the serial total time ,but the amplifier shows Parallel module run more time than the serial module ,for example,in the serial program,the second spend time module is propagate::reflect_particles is consume 318.938s,but the parallel the same module reflect_part consume 527.269.Why appear this? What the time show in the amplifier in the parallel program?

Use of -headerpad_max_install_names for OS X

Is it possible to work into the Makefiles for OS X to include -headerpad_max_install_names as a linker command? This would allow end developers to change the "install_name" of the libraries to their installation location. This saves having to add in environment variables such as "DYLD_LIBRARY_PATH" because the end developer can set path to what they want. Just to be clear just by adding the linker argument gives the end developer the option of changing the "install_name" if they want, the actual "install_name" is still set to just the name of the library.

Libraries identified with wrong c++ library, std::runtime_error crash results

Heads up: With Composer XE 2013 sp1, Intel shipped two versions of the tbb libraries: one set linked to libstdc++ (the older C++0x gnu library), another linked to libc++ (the newer, C++11-compliant, LLVM library). They're incorrectly identified by the directory in which they're installed, and if you use the wrong one, the result is that any use of std::runtime_error may crash in the class destructor — whether or not you even throw the exception. The tbb problem:

/opt/intel/tbb/lib/*.dylib contains the libraries linked to libc++

Graph nodes and core affinity

Hi, I'm considering to use TBB for its graph functionality. I need to strictly bind every graph node to specific CPU core/thread (for example, there could be 10 graph nodes and 3 cores/threads). It seems to me that TBB does not provide such a level of control over core/thread affinity for graph nodes, am I wrong? Thanks a lot.

Can C++11 thread_local be used with TBB

Can I expect that C++11 thread_local will have the expected effect. I assume that using thread_local will not cause any surprises since TBB is designed to be a library-based solution that uses the platform's threading. So, for example: 

// Forward declaration of class
Class Test;

// Thread local for thread safety
thread_local *p_global;


int main()
    // Create several instances of Test
    // Assign pointer to each instance to p_global;

Will every thread have its own copy of p_global?

Multiple pre-emptive thread pools in TBB

I have a requirement to create a number of real time processing chains one running at n Hz and others running at x, y and z Hz in a single process. Where x, y and z are some multiple (not necessarily a simple multiple) of n. For example one chain running at 1Hz and others running at 3Hz and 4Hz. Each processing chain needs to make use of TBB to parallelize some of their computations etc. and so needs to have a pool of TBB worker threads that match the number of hardware processors, but the higher frequency chains need to pre-empt the lower frequency chains in order for the system to work.

Intel® Threading Building Blocks abonnieren