| OPENMP API Specification: Version 5.0 November 2018
1.2.5 Tasking Terminology
task
A specific instance of executable code and its data environment that the OpenMP implementation can
schedule for execution by threads.
task region
A
region consisting of all code encountered during the execution of a
task.
COMMENT:
A
parallel
region
consists
of
one
or
more
implicit
task
regions.
implicit task
A task generated by an implicit parallel region or generated when a parallelconstruct is
encountered during execution.
binding implicit task
The implicit task of the current thread team assigned to the encountering thread.
explicit task
A task that is not an implicit task.
initial task
An implicit task associated with an implicit parallel region.
current task
For a given thread, the task corresponding to the task region in which it is executing.
child task
A task is a child task of its generating task region. A child task region is not part of its generating
task region.
sibling tasks
Tasks that are child tasks of the same task region.
descendent task
A task that is the child task of a task region or of one of its descendent task regions.
task completion
Task completion occurs when the end of the
structured block associated with the
construct
that generated the
task is reached.
COMMENT:
Completion
of
the
initial
task
that
is
generated
when
the
program
begins
occurs
at
program
exit.
task scheduling point
A point during the execution of the current
task region at which it can be suspended to
be resumed later; or the point of
task completion, after which the executing thread may switch to a different
task region.
COMMENT:
For
a
list
of
task
scheduling
points,
see
Section 2.10.6
on
page 415.
task switching
The act of a thread switching from the execution of one task to another task.
tied task
A task that, when its task region is suspended, can be resumed only by the same thread that
suspended it. That is, the task is tied to that thread.
untied task
A task that, when its task region is suspended, can be resumed by any thread in the team. That
is, the task is not tied to any thread.
undeferred task
A task for which execution is not deferred with respect to its generating task region. That is,
its generating task region is suspended until execution of the structured block associated with the undeferred
task is completed.
included task
A task for which execution is sequentially included in the generating task region. That is, an
included task is undeferred and executed by the encountering thread.
merged task
A task for which the data environment, inclusive of ICVs, is the same as that of its generating
task region.
mergeable task
A task that may be a merged task if it is an undeferred task or an included task.
final task
A task that forces all of its child tasks to become final and included tasks.
task dependence
An ordering relation between two sibling tasks: the dependent task and a previously
generated predecessor task. The task dependence is fulfilled when the predecessor task has completed.
dependent task
A task that because of a task dependence cannot be executed until its predecessor tasks have
completed.
mutually exclusive tasks
Tasks that may be executed in any order, but not at the same time.
predecessor task
A task that must complete before its dependent tasks can be executed.
task synchronization construct
A taskwait, taskgroup, or a barrierconstruct.
task generating construct
A construct that generates one or more explicit tasks.
target task
A mergeable and untied task that is generated by a target, target enter data, target
exit data, or target updateconstruct.
taskgroup set
A set of tasks that are logically grouped by a taskgroupregion.