- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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?
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page