reference, declarationdefinition
definition → references, declarations, derived classes, virtual overrides
reference to multiple definitions → definitions
unreferenced

References

projects/openmp/runtime/src/kmp_dispatch.cpp
  277     pr->u.p.parm1 = chunk;
  282   pr->u.p.count = 0;
  321   pr->u.p.lb = lb;
  322   pr->u.p.ub = ub;
  323   pr->u.p.st = st;
  324   pr->u.p.tc = tc;
  335       pr->u.p.ordered_lower = 1;
  336       pr->u.p.ordered_upper = 0;
  359       pr->u.p.count = init;
  360       pr->u.p.ub = init + small_chunk + (id < extras ? 1 : 0);
  362       pr->u.p.parm2 = lb;
  366       pr->u.p.parm3 = KMP_MIN(small_chunk + extras, nproc);
  367       pr->u.p.parm4 = (id + 1) % nproc; // remember neighbour tid
  368       pr->u.p.st = st;
  407           pr->u.p.parm1 = (id == tc - 1); /* parm1 stores *plastiter */
  409           pr->u.p.count = 1; /* means no more chunks to execute */
  410           pr->u.p.parm1 = FALSE;
  418         pr->u.p.parm1 = (id == nproc - 1);
  424         pr->u.p.parm1 = TRUE;
  427         pr->u.p.count = 1; /* means no more chunks to execute */
  428         pr->u.p.parm1 = FALSE;
  439       pr->u.p.lb = lb + init;
  440       pr->u.p.ub = lb + limit;
  444       pr->u.p.lb = lb + init * st;
  448         pr->u.p.ub = (ub_tmp + st > ub ? ub : ub_tmp);
  450         pr->u.p.ub = (ub_tmp + st < ub ? ub : ub_tmp);
  454       pr->u.p.ordered_lower = init;
  455       pr->u.p.ordered_upper = limit;
  467       pr->u.p.parm1 = ((tc + nth - 1) / nth + chunk - 1) & ~(chunk - 1);
  469       pr->u.p.parm1 = tc;
  486         pr->u.p.parm2 = guided_int_param * nproc * (chunk + 1);
  487         *(double *)&pr->u.p.parm3 =
  500       pr->u.p.parm1 = tc;
  559         *(DBL *)&pr->u.p.parm3 = x;
  600         pr->u.p.parm2 = cross;
  609         pr->u.p.count = tc - __kmp_dispatch_guided_remaining(
  623       pr->u.p.parm1 = tc;
  632     pr->u.p.parm1 = (nproc > 1) ? (tc + nproc - 1) / nproc : tc;
  636     if (pr->u.p.parm1 <= 0) {
  637       pr->u.p.parm1 = KMP_DEFAULT_CHUNK;
  685     pr->u.p.parm1 = parm1;
  686     pr->u.p.parm2 = parm2;
  687     pr->u.p.parm3 = parm3;
  688     pr->u.p.parm4 = parm4;
  917         cur_chunk = pr->u.p.parm1;
  933       __kmp_itt_metadata_loop(loc, schedtype, pr->u.p.tc, cur_chunk);
  974     volatile T *p = &pr->u.p.static_steal_counter;
  985         &(task_info->task_data), pr->u.p.tc, OMPT_LOAD_RETURN_ADDRESS(gtid));
 1022       UT lower = pr->u.p.ordered_lower;
 1079     UT lower = pr->u.p.ordered_lower;
 1080     UT upper = pr->u.p.ordered_upper;
 1175   if (pr->u.p.tc == 0) {
 1186     T chunk = pr->u.p.parm1;
 1192     trip = pr->u.p.tc - 1;
 1199       if (pr->u.p.count < (UT)pr->u.p.ub) {
 1199       if (pr->u.p.count < (UT)pr->u.p.ub) {
 1202         init = (pr->u.p.count)++;
 1203         status = (init < (UT)pr->u.p.ub);
 1210         int while_limit = pr->u.p.parm3;
 1216           T victimIdx = pr->u.p.parm4;
 1223                   (*(volatile T *)&victim->u.p.static_steal_counter !=
 1224                    *(volatile T *)&pr->u.p.static_steal_counter)) &&
 1231           if (!victim || (*(volatile T *)&victim->u.p.static_steal_counter !=
 1232                           *(volatile T *)&pr->u.p.static_steal_counter)) {
 1237           if (victim->u.p.count + 2 > (UT)victim->u.p.ub) {
 1237           if (victim->u.p.count + 2 > (UT)victim->u.p.ub) {
 1238             pr->u.p.parm4 = (victimIdx + 1) % nproc; // shift start tid
 1245           limit = victim->u.p.ub; // keep initial ub
 1246           if (victim->u.p.count >= limit ||
 1247               (remaining = limit - victim->u.p.count) < 2) {
 1249             pr->u.p.parm4 = (victimIdx + 1) % nproc; // next victim
 1257             init = (victim->u.p.ub -= (remaining >> 2));
 1261             init = (victim->u.p.ub -= 1);
 1266           pr->u.p.parm4 = victimIdx; // remember victim to steal from
 1271           pr->u.p.count = init + 1;
 1272           pr->u.p.ub = limit;
 1289         vold.b = *(volatile kmp_int64 *)(&pr->u.p.count);
 1293             (volatile kmp_int64 *)&pr->u.p.count,
 1297           vold.b = *(volatile kmp_int64 *)(&pr->u.p.count);
 1308         int while_limit = pr->u.p.parm3;
 1316           T victimIdx = pr->u.p.parm4;
 1323                   (*(volatile T *)&victim->u.p.static_steal_counter !=
 1324                    *(volatile T *)&pr->u.p.static_steal_counter)) &&
 1331           if (!victim || (*(volatile T *)&victim->u.p.static_steal_counter !=
 1332                           *(volatile T *)&pr->u.p.static_steal_counter)) {
 1337           pr->u.p.parm4 = victimIdx; // new victim found
 1339             vold.b = *(volatile kmp_int64 *)(&victim->u.p.count);
 1345               pr->u.p.parm4 = (victimIdx + 1) % nproc; // shift start victim id
 1356                     (volatile kmp_int64 *)&victim->u.p.count,
 1370               *(volatile kmp_int64 *)(&pr->u.p.count) = vold.b;
 1385       start = pr->u.p.parm2;
 1388       incr = pr->u.p.st;
 1406         pr->u.p.ordered_lower = init;
 1407         pr->u.p.ordered_upper = limit;
 1419     if ((status = !pr->u.p.count) != 0) {
 1420       pr->u.p.count = 1;
 1421       *p_lb = pr->u.p.lb;
 1422       *p_ub = pr->u.p.ub;
 1423       last = pr->u.p.parm1;
 1425         *p_st = pr->u.p.st;
 1427       pr->u.p.lb = pr->u.p.ub + pr->u.p.st;
 1427       pr->u.p.lb = pr->u.p.ub + pr->u.p.st;
 1427       pr->u.p.lb = pr->u.p.ub + pr->u.p.st;
 1439     parm1 = pr->u.p.parm1;
 1441     trip = pr->u.p.tc - 1;
 1442     init = parm1 * (pr->u.p.count + tid);
 1445       start = pr->u.p.lb;
 1446       incr = pr->u.p.st;
 1455       pr->u.p.count += nproc;
 1466         pr->u.p.ordered_lower = init;
 1467         pr->u.p.ordered_upper = limit;
 1474     T chunk = pr->u.p.parm1;
 1482     trip = pr->u.p.tc - 1;
 1490       start = pr->u.p.lb;
 1492       incr = pr->u.p.st;
 1509         pr->u.p.ordered_lower = init;
 1510         pr->u.p.ordered_upper = limit;
 1517     T chunkspec = pr->u.p.parm1;
 1521     trip = pr->u.p.tc;
 1533           pr->u.p.parm2) { // compare with K*nproc*(chunk+1), K=2 by default
 1554               (UT)(remaining * *(double *)&pr->u.p.parm3); // divide by K*nproc
 1564       start = pr->u.p.lb;
 1565       incr = pr->u.p.st;
 1571         pr->u.p.ordered_lower = init;
 1572         pr->u.p.ordered_upper = limit;
 1586     T chunk = pr->u.p.parm1;
 1590     trip = pr->u.p.tc;
 1602       if ((T)remaining < pr->u.p.parm2) {
 1623       UT span = remaining * (*(double *)&pr->u.p.parm3);
 1637       start = pr->u.p.lb;
 1638       incr = pr->u.p.st;
 1644         pr->u.p.ordered_lower = init;
 1645         pr->u.p.ordered_upper = limit;
 1657     T chunkspec = pr->u.p.parm1;
 1669     trip = pr->u.p.tc;
 1677       if (chunkIdx >= (UT)pr->u.p.parm2) {
 1680         init = chunkIdx * chunkspec + pr->u.p.count;
 1708               trip, *(DBL *)&pr->u.p.parm3, chunkIdx);
 1714                            trip, *(DBL *)&pr->u.p.parm3, chunkIdx + 1);
 1732       start = pr->u.p.lb;
 1733       incr = pr->u.p.st;
 1739         pr->u.p.ordered_lower = init;
 1740         pr->u.p.ordered_upper = limit;
 1753     T parm2 = pr->u.p.parm2;
 1754     T parm3 = pr->u.p.parm3;
 1755     T parm4 = pr->u.p.parm4;
 1763     trip = pr->u.p.tc - 1;
 1771       start = pr->u.p.lb;
 1773       incr = pr->u.p.st;
 1790         pr->u.p.ordered_lower = init;
 1791         pr->u.p.ordered_upper = limit;
 1916     if ((status = (pr->u.p.tc != 0)) == 0) {
 1933       T chunk = pr->u.p.parm1;
 1938       init = chunk * pr->u.p.count++;
 1939       trip = pr->u.p.tc - 1;
 1954         start = pr->u.p.lb;
 1956         incr = pr->u.p.st;
 1977           pr->u.p.ordered_lower = init;
 1978           pr->u.p.ordered_upper = limit;
 1994       pr->u.p.tc = 0;
 1995       *p_lb = pr->u.p.lb;
 1996       *p_ub = pr->u.p.ub;
 2003         *p_st = pr->u.p.st;
projects/openmp/runtime/src/kmp_dispatch.h
  350     lower = pr->u.p.ordered_lower;