HOME
| OPENMP API Specification: "Version 5.2 -- GIT rev 95b2e3a44"

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.

implicit task

A task generated by an implicit parallel region or generated when a parallel construct 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.

detachable task

An explicit task that only completes after an associated event variable that represents an allow-completion event is fulfilled and execution of the associated structured block has completed.

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 barrier construct.

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 taskgroup region, such that a task is a member of the taskgroup set if and only if its task region is nested in the taskgroup region and it binds to the same parallel region as the taskgroup region.