Community
cancel
Showing results for 
Search instead for 
Did you mean: 
firelight
Beginner
129 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
Nikita_P_Intel
Employee
129 Views

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.

firelight
Beginner
129 Views

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

Reply