Community
cancel
Showing results for 
Search instead for 
Did you mean: 
Highlighted
Beginner
5 Views

receive_or_steal_task

Is it "normal" or expected for `tbb::internal::custom_scheduler::receive_or_steal_task` to be the most expensive function of given algorithm?

My guess is, since this is recursive work and it isn't very deep, `receive_or_steal_task` is where the scheduler loops waiting for more work. If it is highest in profiling, it would denote a lack of work? Am I reading this right?

0 Kudos
2 Replies
Highlighted
Employee
5 Views

Hi, could you, please,

Hi, could you, please, describe an algorithm that you are talking about? But, in general, it is "not normal" that `tbb::internal::custom_scheduler::receive_or_steal_task` appears as the highest in profiling, which means (that you guessed right) the lack of work and underutilization of CPU resources (it should not depend on the recursive nature of an algorithm, I think). Try to increase your workload.

0 Kudos
Highlighted
Beginner
5 Views

Thx for the clarification.

Thx for the clarification. The algorithm is recursive traversal of a KD Tree. Multi-threading it, even though threads are starving, did improve performance quite a bit. I can't really increase the workload, though it isn't a problem. I wanted to be sure this wasn't overhead from using tbb the wrong way. Whether or not I need to use the low-level tbb::task.

Good day

0 Kudos