HOME
| 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.