Intel® Threading Building Blocks

Mac install location conflicts with code signing

tbb dylibs on the Mac are built with an install name path (otool -D) of "libtbb.dylib" (and similar names for all the other tbb libraries), which means that if you link with them as-is and place it inside an app package in the Apple-recommended location, they won't be found and you'll die on launch with

dyld: Library not loaded: libtbb_debug.dylib

  Referenced from: /Users/williams/photoshop/main/photoshop/Targets/Debug_x86_64/Adobe Photoshop CC Photoshop CC 2015

  Reason: image not found

Using task_arena to prevent deadlock due to task stealing

To start with a summary, I have had a similar deadlock to that described in  I can avoid the deadlock using task_arena, but that brings its own problem.  I am hoping for advice on these issues.

class hierarchy for FlowGraph nodes

Apology's up front if this turns out to be a stupid question: I'm getting my head in a right old tangle with the template functions...

I'm trying to design a reconfigurable flowgraph framework: whereby the actual makeup of the flowgraph can be dynamically created at runtime (from a configuration file). The flowgraph would consist of:

- function_node

- multifunction_node

- source_node

- join_node (working in conjunction with a function_node).

There is only a single datatype flowing through all of these nodes, lets call it CDataClass*.

calling flowgraph operators()() through shared library

Does anyone know if this is possible?...

To create a FlowGraph whereby each function is a class loaded from a shared library: probably Boost::extension to maintain portability between Windows & Linux.

Just a little concerned about:

- calls to the operator() to run the flow graph function

- any performance penalties this may incur

Any ideas?



Runtime error when define library header outside pragma offload_attribute?


,I found that if I am using pragma offload_attribute to push library either to _Cilk_shared or target(mic),  I should not define some librarys(cilk or iostream) outside of this pragma.

I ran into this problem where If I define iostream outside the pragma I will get a run time error on MIC where it says can not load library blablabla

similar things for library such as Cilk. I have to put Cilk header inside offload_attribute and I can not put the header outside

Is there any way to observe the threads a task scheduler is managing?


We have an OpenGL application. In each frame, we run the following piece of code. 

            // Pipeline scheduler observer. It observes the worker threads entering the 
            // task arena.
            PipelineObserver o(dc);

            // use TBB to execute a parallel while
            tbb::parallel_while w;
            ApplyIterator body(*this, iteratorStream, eyePosition, maxCell, &w);
  , body);

Подписаться на Intel® Threading Building Blocks