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

1.2.3  Loop Terminology

canonical loop nest

A loop nest that complies with the rules and restrictions defined in Section 4.4.1.

loop-associated directive

An OpenMP executable directive for which the associated user code must be a canonical loop nest.

associated loop

A loop from a canonical loop nest that is controlled by a given loop-associated directive.

loop nest depth

For a canonical loop nest, the maximal number of loops, including the outermost loop, that can be associated with a loop-associated directive.

logical iteration space

For a loop-associated directive, the sequence 0,…,N 1 where N is the number of iterations of the loops associated with the directive. The logical numbering denotes the sequence in which the iterations would be executed if the set of associated loops were executed sequentially.

logical iteration

An iteration from the associated loops of a loop-associated directive, designated by a logical number from the logical iteration space of the associated loops.

logical iteration vector space

For a loop-associated directive with n associated nested loops, the set of n-tuples (i1,…,in). For the kth associated loop, from outermost to innermost, ik is its logical iteration number as if it was the only associated loop.

logical iteration vector

An iteration from the associated nested loops of a loop-associated directive, where n is the number of associated loops, designated by an n-tuple from the logical iteration vector space of the associated loops.

lexicographic order

The total order of two logical iteration vectors ωa = (i1,…,in) and ωb = (j1,…,jn), denoted by ωa lexωb, where either ωa = ωb or m ∈{1,…,n} such that im < jm and ik = jk for all k ∈{1,…,m 1}.

product order

The partial order of two logical iteration vectors ωa = (i1,…,in) and ωb = (j1,…,jn), denoted by ωa productωb, where ik jk for all k ∈{1,…,n}.

loop transformation construct

A construct that is replaced by the loops that result from applying the transformation as defined by its directive to its associated loops.

generated loop

A loop that is generated by a loop transformation construct and is one of the resulting loops that replace the construct.

SIMD loop

A loop that includes at least one SIMD chunk.

non-rectangular loop

For a loop nest, a loop for which a loop bound references the iteration variable of a surrounding loop in the loop nest.

perfectly nested loop

A loop that has no intervening code between it and the body of its surrounding loop. The outermost loop of a loop nest is always perfectly nested.

doacross loop nest

A loop nest, consisting of loops that may be associated with the same loop-associated directive, that has cross-iteration dependences. An iteration is dependent on one or more lexicographically earlier iterations.

COMMENT: The ordered clause parameter on a worksharing-loop directive identifies the loops associated with the doacross loop nest.