Since upgrading to TBB 4.4 some of our test code has generated warning like "TBB Warning: Max number of workers has been already set to 11. The request for 15 workers is ignored." (The numbers in the warning message can vary.)
It have not been able to to pin down what triggers the warning. But the test code does not explicitly limit the number of threads.
Can anyone suggest what is causing the warning?
I think there's a bug in the enqueue operation or at least a lack of documentation. I also think that the behaviour there has changed recently and it had not been an issue with previous versions of TBB. If you call enqueue on a task allocated as root, it inherits the task group context. If the original root task that has "opened" this task group context terminates, the task context seems to be destroyed even though there still are some tasks enqueued. It leads to
I've just started using tbb flow graphs and I've got some questions.
Actually, I need more nodes in it and as I understand I can build them by inheriting my class from tbb::flow::graph_node, tbb::flow::sender, etc. Am I right?
Being more concrete, I need two nodes.
First one should be a sender node, which takes data asynchronously from UDP port using, say, boost::asio and then pushes this data into the flow graph.
Task-based parallel programming is the future. The University of Bristol Advanced Computing Research Centre wants to be part of that future. It provides advanced computing support to researchers, with a team of research software engineers who work with academics across a range of disciplines to help optimize research software that can be applied in industry.
What a Journey It's Been.
Intel® Threading Building Blocks (Intel® TBB) has come a long way from where it started in 2006 to its10-year anniversary in 2016. But on this long and winding journey, we've never lost sight of our core values of innovation and customer satisfaction.
Intel TBB is a powerful tool that lets developers leverage multi-core performance and heterogeneous computing without having to be threading or parallel programming experts. It is:
We currently use the Python libraries in Boost and Intel TBB. The libraries in Boost undefine the MSVC macro _DEBUG then subsequently redefine it without any value. In TBB_Config.h the macro TBB_USE_DEBUG is set from the value of _DEBUG. When TBB_USE_DEBUG is later used in #if statements within the same header file the preprocessor cannot evaluate the expression and pre-processing fails.