Intel® Fortran Compiler 17.0 Developer Guide and Reference
OpenMP* Fortran Compiler Directive: Creates a device data environment and then executes the construct on that device. It also specifies a loop that can be executed in parallel by multiple threads that are members of multiple teams created by a TEAMS construct. The loop will be distributed across the teams, which will be executed concurrently using SIMD instructions. This directive only applies to Intel® MIC Architecture.
!$OMP TARGET TEAMS DISTRIBUTE PARALLEL DO SIMD [clause[[,] clause]... ]
do-loop
[!$OMP END TARGET TEAMS DISTRIBUTE PARALLEL DO SIMD]
clause |
Can be any of the clauses accepted by the TARGET or TEAMS DISTRIBUTE PARALLEL DO SIMD directives with identical meanings and restrictions. |
do-loop |
Is one or more DO iterations (DO loops). The DO iteration cannot be a DO WHILE or a DO loop without loop control. The DO loop iteration variable must be of type integer. All loops associated with the construct must be structured and perfectly nested; that is, there must be no intervening code and no other OpenMP* Fortran directives between any two loops. The iterations of the DO loop are distributed across the existing team of threads. The values of the loop control parameters of the DO loop associated with a DO directive must be the same for all the threads in the team. |
This directive provides a shortcut for specifying a TARGET construct followed immediately by a TEAMS DISTRIBUTE PARALLEL DO SIMD construct.
If the END TARGET TEAMS DISTRIBUTE PARALLEL DO SIMD directive is not specified, an END TARGET TEAMS DISTRIBUTE PARALLEL DO SIMD directive is assumed at the end of do-loop.