[Openmp-commits] [PATCH] D35273: Add recursive task scheduling strategy to taskloop implementation
Jonathan Peyton via Phabricator via Openmp-commits
openmp-commits at lists.llvm.org
Tue Jul 11 13:38:42 PDT 2017
jlpeyton created this revision.
Patch by Andrey Churbanov
Taskloop implementation is extended by using recursive task scheduling.
Envirable `KMP_TASKLOOP_MIN_TASKS` added as a manual threshold for the user to switch from recursive to linear tasks scheduling.
- The calculations for the loop parameters are moved from `__kmp_taskloop_linear` upper level
- Initial calculation is done in the `__kmpc_taskloop`, further range splitting is done in the `__kmp_taskloop_recur`.
- Added threshold to switch from recursive to linear tasks scheduling;
- One half of split range is scheduled as an internal task which just moves sub-range parameters to the stealing thread that continues recursive scheduling (if number of tasks still enough), the other half is processed recursively;
- Internal task duplication routine fixed to assign parent task, that was not needed when all tasks were scheduled by same thread, but is needed now.
-------------- next part --------------
A non-text attachment was scrubbed...
Size: 26253 bytes
Desc: not available
More information about the Openmp-commits