I assume this example is given in the context of continuation stealing.
If the implementation is using child stealing, how will this greedy joining policy be different?
HingOn
in child stealing, the caller thread's work queue always have most of the work while the other threads steal one work each time. i think the last-thread-continue-execution-after-sync in greedy joining policy doesn't fit this master-slave relationship so well. it would probably be more efficient if the caller thread keeps track of the block and continues execution after sync.
I assume this example is given in the context of continuation stealing. If the implementation is using child stealing, how will this greedy joining policy be different?
in child stealing, the caller thread's work queue always have most of the work while the other threads steal one work each time. i think the last-thread-continue-execution-after-sync in greedy joining policy doesn't fit this master-slave relationship so well. it would probably be more efficient if the caller thread keeps track of the block and continues execution after sync.