You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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.
0 commit comments