HOME
| OPENMP API Specification: Version 5.1 November 2020

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.

encountering task
For a given region, the current task of the encountering thread.

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
A condition that is satisfied when a thread reaches the end of the executable code that is associated with the task and any allow-completion event that is created for the task has been fulfilled.

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.

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 was executing it before suspension. 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 that are child tasks of the encountering task.

target task
A mergeable and untied task that is generated by a device construct or a call to a device memory routine and that coordinates activity between the current device and the target device.

taskgroup set
A set of tasks that are logically grouped by a taskgroupregion.