Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Add a mechanism to reset the default task spawn order
Add `qthread_reset_target_shep()`, which resets the shepherd that tasks created with `NO_SHEPHERD` get spawned to. This is useful in Chapel for cases where we want to use the default spawn location, but get good NUMA affinity between data parallel loops sepreated by some other task spawn. Just using the `qthread_fork_to` API would disable future stealing, so this is a mechanism to get tasks in consecutive data parallel loops to spawn to the same shepherds without preventing stealing. This was originally done in chapel-lang/chapel 12868, which includes some perf results. At the time I expected we'd update our shim to use `qthread_fork_to`, but had not considered the work-stealing implications at the time.
- Loading branch information