Intel® Threading Building Blocks

TBB not creating/using as many threads as requested

I have a large program that is threaded using TBB. For various reasons, we explicitly set the number of threads using scheduler = new tbb::task_scheduler_init(numThreads) at the beginning of the program. There is plenty of parallel work in parallel_for loops, and the grain size is selected for multiple grains per core to allow task stealing if needed.

memory_pool questions

Добрый день!

Тут же можно писать по-русски?

Вопрос по tbb::memory_pool. Мы очень заинтересованы в использовании этого класса в нашем продукте, уже получены реальные достижения в ускорении и т.п.

Посему возникло несколько вопросов:

1. memory_pool уже долгое время в виде preview фичи. Нам не очень хочется использовать в коммерческом продукте "сырые" preview инструменты. Планируется-ли выпустить memory_pool в релизном статусе?

Could not determine path to TBB libraries

I installed the Intel libraries for vs2015 and have ran TBBVars.bat with intel64 and vs2015 , also TBBVars.bat with ia32 and vs2015 parameters.  I also installed the path of the libraries and the include  in VC+ directories .

The path for the library in my case is : C:\Program Files (x86)\IntelSWTools\compilers_and_libraries_2017.4.210\windows\tbb\lib\ia32_win\vc14

I tried to compile several examples supplied by Intel.  The compilation is OK for the include files but not for the libraries, VS2015 ends with the following error message

Building for Visual Studio 2017


I'm building a tool that is dependent on TBB with a few levels in between.  The rest of the system is built with Visual Studio 2017 (v141) SDK version 10.0.15063.0.   I need to have a compatible version of tbb but the last release is v140.  Instructions for rebuilding are not very clear in this regard. 

Any help getting something built would be greatly appreciated!

jerry isdale,  haiku, hi, usa

building mapping between TBB threads with multiple Intel phi coprocessors


I have a scientific program in which I used TBB for multi-threading parallelization.
Now I am going to add support for using Intel phi co-processor. We have multiple Intel
phi coprocessors, I am wondering that in general how to set up an one to one correspondence
between the TBB threads and the Phi card.

For example, the pseudo code is like:

set nThreads to be number of Phi cards(suggest it's N);

TBB initialization with nThreads;

loop over the batch of job with TBB thread(using parallel for):

Conflicts between thead local storage (TLS) in tbb and MKL BLAS

Recently, when I tried to use MKL BLAS with tbb, I found conflicts between TLS provided by tbb and MKL BLAS APIs. The details are as follows. I used MKL CBLAS APIs within a tbb::parallel_for block to do some calculation. In addition, I used TLS within the same parallel_for to store intermediate results. MKL is compiled using tbb thread. I found that the final result is essentially different from the result of the serial implementation (no parallel_for) of the same algorithm.

High task startup delay when using multiple task groups in multiple threads


I have an application that starts 3 worker threads, then each worker thread creates a tbb::task_group and submit tasks to the task_group at 500ms intervals and roughly at the same time. I log the startup delay(time when the task is actually executed - time when the task is submitted to the task group)  of each task. Typical execution time of a task in each worker thread is 400ms(thread 1), 400ms(thread2) and 50 ms(thread3).

Does TBB support scalable thread pool


I have found many free open source versions of thread pool, which are easy to use. For example, and

But I think TBB is more stable. Does TBB support scalable thread pool, where I can add any number of tasks into thread pool, and thread pool will add new threads to handle new tasks if there is no free thread at some time?

Subscribe to Intel® Threading Building Blocks