Intel® Threading Building Blocks

Inspector XE 2013SP1 reports data race in _concurrent_unordered_impl


I just upgraded to the latest Intel Tools, including TBB to 4.2. Running the Inspector on one of my unit tests it reports some data races triggered by parallel calls from tbb::concurrent_unordered_map::find(). The data races are all related to the initialization of the buckets, see part of the call stack below.

Do I really got a problem here or is it a false positive ?


Recursive collision code in tbb

Hello there,

I'm working on a medical simulator where we have located a bottleneck that should be fairly easy to fix since it's a straight-forward recursive routine.

The located bottleneck is at line 9 in the code section below : if (!n1.m_bound.overlap(n2.m_bound))

Naturally I've already tried a stack based while loop instead of recursion but that actually ended up slowing down the execution so I went back to my original recursive implementation which in essence is the code I've pasted below.

Segmentation fault on shutdown in safer_scalable_free when using


I am from Openet, we have a support account, but it is disabled at the moment.

We stared using tbbmalloc recently, but we had a problem with the process core dumping on shutdown fairly consistently. There are a few examples of stack traces, they all have various originating frames, but the top of the stack is consistent (see below). I would like to paste some full stack traces but would rather do so privately. I can provide serial number etc. Any help would be appeciated.

We are running a c++ application on RHEL6.3, on VM's.

Question about spin_rw_mutex v3 implementation


I'm probably missing something.

I don't understand why in internal_try_acquire_writer() & internal_acquire_writer(), it checks against WRITER | READERS, but not against WRITER_PENDING?

Won't this cause the following CAS operation to replace the value with WRITER, potentially erasing WRITER_PENDING bit?

Assuming the WRITER lock is released before any new WRITER_PENDING get set, any 'reader' could get set before the 'pending writer' (whose bit got erased).

Profiling scalable_malloc virtual memory overhead

Hopefully this is a fairly simple question.  Are there any tools available that will let me get an overview of the virtual memory overhead from using scalable_malloc?  

For context, I'm trying to debug a plethora of out of memory crashes in a 32bit application and I'm trying to ascertain what our actual footprint is, as well as how much of our virtual space is being used by tbb internally.  

I wasn't able to find much information on this topic in the docs so I was hoping someone else may have some insight?

Flow Graph - Suggestion


I've noticed what seems to me a suboptimal semantics of the flow graph api.

In particular when a node switches set (push/pull) the switch is possibly unnecessarily complicated.

Given two nodes S (s) (sender) and R (r) (receiver).

All nodes start out in the push set.

S tries to push to R and fails. S then removes R from it's successors and adds itself to Rs predecessors. 

use TBB scalable allocator for both multi-threading and single-threading purpose

Hello there. I have two matrix classes. The first matrix class is for normal use, where I use the STL allocator. This matrix class is designed for using in single thread environment. On the other hand, my code is also running heavy calculation in multi-threading environment, in which I use TBB to do parallelization. Inside the thread I designed the local matrix class (local to a single thread in multithreading environment), and it use the TBB scalable allocator.

Subscribe to Intel® Threading Building Blocks