- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Dear Intel Experts,
I would like to know whether Intel OpenMP 3.0 task scheduler using work-stealing approach for dynamic load-balancing.
Regarding TBB, I would like to know whether the new algorithms, Parallel_invoke and Parallel_foe_each, are using the work-stealing mechanism of TBB like Parallel_for and Parallel_reduce for dynamic load balancing.
Thanks in advance, Ami
I would like to know whether Intel OpenMP 3.0 task scheduler using work-stealing approach for dynamic load-balancing.
Regarding TBB, I would like to know whether the new algorithms, Parallel_invoke and Parallel_foe_each, are using the work-stealing mechanism of TBB like Parallel_for and Parallel_reduce for dynamic load balancing.
Thanks in advance, Ami
Link Copied
1 Reply
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Quoting - Ami Marowka
I would like to know whether Intel OpenMP 3.0 task scheduler using work-stealing approach for dynamic load-balancing.
Regarding TBB, I would like to know whether the new algorithms, Parallel_invoke and Parallel_foe_each, are using the work-stealing mechanism of TBB like Parallel_for and Parallel_reduce for dynamic load balancing.
Regarding TBB, I would like to know whether the new algorithms, Parallel_invoke and Parallel_foe_each, are using the work-stealing mechanism of TBB like Parallel_for and Parallel_reduce for dynamic load balancing.
There is nothing in the OpenMP 3.0 specification that would require the use of a work-stealing scheduler and there are several defined scheduler kinds that limit how OpenMP can divide work, mostly for parallel loops. I suppose you could write an implementation of schedule(auto) that uses task-stealing:
When schedule(auto) is specified, the decision regarding scheduling is delegated to the compiler and/or runtime system. The programmer gives the implementation the freedom to choose any possible mapping of iterations to threads in the team.
I have not heard anything suggesting that has been done, however.
Regarding parallel_invoke and parallel_for_each, these are both task generators that live on top the TBB task scheduler, which will use task stealing where appropriate to dispatch these tasks.

Reply
Topic Options
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page