HOME
| OPENMP API Specification: Version 5.0 November 2018

2.12.4  target exit data Construct

SummaryThe target exit data directive specifies that list items are unmapped from a device data environment. The target exit data directive is a stand-alone directive.

Syntax

SVG-Viewer needed.

The syntax of the target exit data construct is as follows:  

 
#pragma omp target exit data [ clause[ [,] clause]...] new-line  

where clause is one of the following:  

 
if([ target exit data :] scalar-expression) 
device(integer-expression) 
map([map-type-modifier[,] [map-type-modifier[,] ...] map-type: locator-list) 
depend([depend-modifier,] dependence-type : locator-list) 
nowait  

SVG-Viewer needed.

SVG-Viewer needed.

The syntax of the target exit data is as follows:  

 
!$omp target exit data [ clause[ [,] clause]...]  

where clause is one of the following:  

 
if([ target exit data :] scalar-logical-expression) 
device(scalar-integer-expression) 
map([map-type-modifier[,] [map-type-modifier[,] ...] map-type: locator-list) 
depend([depend-modifier,] dependence-type : locator-list) 
nowait  

SVG-Viewer needed.

BindingThe binding task set for a target exit data region is the generating task, which is the target task generated by the target exit data construct. The target exit data region binds to the corresponding target task region.

DescriptionWhen a target exit data construct is encountered, the list items in the map clauses are unmapped from the device data environment according to the map clause semantics. The target exit data construct is a task generating construct. The generated task is a target task. The generated task region encloses the target exit data region.

All clauses are evaluated when the target exit data construct is encountered. The data environment of the target task is created according to the data-sharing attribute clauses on the target exit data construct, per-data environment ICVs, and any default data-sharing attribute rules that apply to the target exit data construct. A variable that is mapped in the target exit data construct has a default data-sharing attribute of shared in the data environment of the target task.

Assignment operations associated with mapping a variable (see Section 2.19.7.1 on page 939) occur when the target task executes.

If the nowait clause is present, execution of the target task may be deferred. If the nowait clause is not present, the target task is an included task.

If a depend clause is present, it is associated with the target task.

If no device clause is present, the default device is determined by the default-device-var ICV.

When an if clause is present and the if clause expression evaluates to false, the device is the host.

Execution Model Events Events associated with a target task are the same as for the task construct defined in Section 2.10.1 on page 384.

The target-exit-data-begin event occurs when a thread enters a target exit data region.

The target-exit-data-end event occurs when a thread exits a target exit data region.

Tool Callbacks Callbacks associated with events for target tasks are the same as for the task construct defined in Section 2.10.1 on page 384; (flags & ompt_task_target) always evaluates to true in the dispatched callback.

A thread dispatches a registered ompt_callback_target callback with ompt_scope_begin as its endpoint argument and ompt_target_exit_data as its kind argument for each occurrence of a target-exit-data-begin event in that thread in the context of the target task on the host. Similarly, a thread dispatches a registered ompt_callback_target callback with ompt_scope_end as its endpoint argument and ompt_target_exit_data as its kind argument for each occurrence of a target-exit-data-end event in that thread in the context of the target task on the host. These callbacks have type signature ompt_callback_target_t.

Restrictions

Cross References