forked from OSchip/llvm-project
[stats] add stats-gathering for static_steal scheduling method
Add counter to count number of static_steal for loops Add counter for number of chunks executed per static_steal for loop Add counter for number of chunks stolen per static_steal for loop llvm-svn: 295461
This commit is contained in:
parent
f2a345c8ee
commit
12ecbb35eb
|
@ -826,6 +826,7 @@ __kmp_dispatch_init(
|
|||
|
||||
ntc = (tc % chunk ? 1 : 0) + tc / chunk;
|
||||
if ( nproc > 1 && ntc >= nproc ) {
|
||||
KMP_COUNT_BLOCK(OMP_FOR_static_steal);
|
||||
T id = __kmp_tid_from_gtid(gtid);
|
||||
T small_chunk, extras;
|
||||
|
||||
|
@ -1637,8 +1638,10 @@ __kmp_dispatch_next(
|
|||
}
|
||||
// stealing succeded, reduce victim's ub by 1/4 of undone chunks or by 1
|
||||
if( remaining > 3 ) {
|
||||
KMP_COUNT_VALUE(FOR_static_steal_stolen, remaining>>2);
|
||||
init = ( victim->u.p.ub -= (remaining>>2) ); // steal 1/4 of remaining
|
||||
} else {
|
||||
KMP_COUNT_VALUE(FOR_static_steal_stolen, 1);
|
||||
init = ( victim->u.p.ub -= 1 ); // steal 1 chunk of 2 or 3 remaining
|
||||
}
|
||||
__kmp_release_lock(lck, gtid);
|
||||
|
@ -1739,6 +1742,7 @@ __kmp_dispatch_next(
|
|||
*VOLATILE_CAST(kmp_int64 *)&vold.b,
|
||||
*VOLATILE_CAST(kmp_int64 *)&vnew.b ) ) {
|
||||
// stealing succedded
|
||||
KMP_COUNT_VALUE(FOR_static_steal_stolen, vold.p.ub-vnew.p.ub);
|
||||
status = 1;
|
||||
while_index = 0;
|
||||
// now update own count and ub
|
||||
|
@ -1765,6 +1769,7 @@ __kmp_dispatch_next(
|
|||
init *= chunk;
|
||||
limit = chunk + init - 1;
|
||||
incr = pr->u.p.st;
|
||||
KMP_COUNT_VALUE(FOR_static_steal_chunks, 1);
|
||||
|
||||
KMP_DEBUG_ASSERT(init <= trip);
|
||||
if ( (last = (limit >= trip)) != 0 )
|
||||
|
|
|
@ -89,6 +89,7 @@ enum stats_state_e {
|
|||
macro (OMP_PARALLEL, stats_flags_e::onlyInMaster | stats_flags_e::noTotal, arg) \
|
||||
macro (OMP_NESTED_PARALLEL, 0, arg) \
|
||||
macro (OMP_FOR_static, 0, arg) \
|
||||
macro (OMP_FOR_static_steal, 0, arg) \
|
||||
macro (OMP_FOR_dynamic, 0, arg) \
|
||||
macro (OMP_DISTRIBUTE, 0, arg) \
|
||||
macro (OMP_BARRIER, 0, arg) \
|
||||
|
@ -146,6 +147,8 @@ enum stats_state_e {
|
|||
macro (OMP_PARALLEL_args, stats_flags_e::noUnits | stats_flags_e::noTotal, arg) \
|
||||
macro (FOR_static_iterations, stats_flags_e::noUnits | stats_flags_e::noTotal, arg) \
|
||||
macro (FOR_dynamic_iterations,stats_flags_e::noUnits | stats_flags_e::noTotal, arg) \
|
||||
macro (FOR_static_steal_stolen,stats_flags_e::noUnits | stats_flags_e::noTotal, arg) \
|
||||
macro (FOR_static_steal_chunks,stats_flags_e::noUnits | stats_flags_e::noTotal, arg) \
|
||||
KMP_FOREACH_DEVELOPER_TIMER(macro, arg)
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue