[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.
Details:
- 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.
Repository:
rL LLVM
https://reviews.llvm.org/D35273
Files:
runtime/src/kmp.h
runtime/src/kmp_global.cpp
runtime/src/kmp_settings.cpp
runtime/src/kmp_tasking.cpp
runtime/test/tasking/kmp_taskloop.c
runtime/test/tasking/omp_taskloop_grainsize.c
runtime/test/tasking/omp_taskloop_num_tasks.c
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D35273.106090.patch
Type: text/x-patch
Size: 26253 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/openmp-commits/attachments/20170711/7d16bac4/attachment-0001.bin>
More information about the Openmp-commits
mailing list