Intel® Fortran Compiler 17.0 Developer Guide and Reference
This is a summary of the OpenMP* directives and clauses supported in the Intel® Fortran Compiler. For detailed information about the OpenMP*API, see the OpenMP Application Program Interface Versions 4.5 specification, which is available from the OpenMP* web site.
In the directive lists below, an OpenMP directive is qualified with the word Directive when the name of the directive is also used for one or more elements besides the directive. For example: FLUSH refers to a directive, a statement, and a subroutine.
Use this directive to form a team of threads and execute those threads in parallel.
Directive |
Description |
---|---|
Defines a parallel region. |
Use this directive for deferring execution.
Use these directives to share work among a team of threads.
Directive |
Description |
---|---|
Identifies an iterative worksharing construct in which the iterations of the associated loop should be divided among threads in a team. |
|
Specifies that the enclosed SECTION directives define blocks of code to be divided among threads in a team. Each section is executed once by a thread in the team. |
|
Specifies that a block of code is to be executed by only one thread in the team at a time. |
|
Divides the work of executing a block of statements or constructs into separate units. It also distributes the work of executing the units to threads of the team so each unit is only executed once. |
Use these directives to synchronize between threads.
Directive |
Description |
---|---|
Ensures that a specific memory location is updated atomically; this prevents the possibility of multiple, simultaneous reading and writing of threads. |
|
Synchronizes all the threads in a team. It causes each thread to wait until all of the other threads in the team have reached the barrier. |
|
Restricts access to a block of code to only one thread at a time. |
|
Identifies synchronization points at which the threads in a team must provide a consistent view of memory. |
|
Specifies a block of code to be executed by the master thread of the team. |
|
Specifies a block of code that the threads in a team must execute in the natural order of the loop iterations. |
|
Specifies a wait for the completion of all child tasks of the current task and all of their descendant tasks. |
|
Specifies a wait on the completion of child tasks generated since the beginning of the current task. |
|
Specifies that the current task can be suspended at this point in favor of execution of a different task. |
Use this directive to give threads global private data.
Directive |
Description |
---|---|
Specifies named common blocks to be private (local) to each thread; they are global within the thread. |
Use these directives to control execution on one or more offload targets.
Directive |
Description |
---|---|
Specifies named routines and variables that are created or mapped to a device. This directive only applies when targeting Intel® Many Integrated Core Architecture (Intel® MIC Architecture) . |
|
Specifies that loop iterations will be distributed among the master threads of all thread teams in a league created by a teams construct. This directive only applies to Intel® MIC Architecture. |
|
Creates a device data environment and executes the construct on that device. This directive only applies to Intel® MIC Architecture. |
|
Maps variables to a device data environment for the extent of the region. This directive only applies to Intel® MIC Architecture. |
|
Specifies that variables are mapped to a device data environment. This directive only applies when targeting Intel® Many Integrated Core Architecture (Intel® MIC Architecture) . |
|
Specifies that variables are unmapped from a device data environment. This directive only applies when targeting Intel® Many Integrated Core Architecture (Intel® MIC Architecture) . |
|
Makes the list items in the
device data environment consistent with their corresponding original list
items.
|
|
Creates a league of thread teams inside a target region to execute a structured block in the master thread of each team. This directive only applies to Intel® MIC Architecture. |
Use these directives to control execution on vector hardware.
Directive |
Description |
---|---|
Requires and controls SIMD vectorization of loops. |
|
Generates a SIMD procedure. |
Directive |
Description |
---|---|
Requests cancellation of the innermost enclosing region of the construct specified, and causes the encountering task to proceed to the end of the cancelled construct. |
|
Defines a point at which implicit or explicit tasks check to see if cancellation has been requested for the innermost enclosing region of the type specified. |
Use these directives as shortcuts for multiple directives in sequence. A combined construct is a shortcut for specifying one construct immediately nested inside another construct. A combined construct is semantically identical to that of explicitly specifying the first construct containing one instance of the second construct and no other statements.
A composite construct is composed of two constructs but does not have identical semantics to specifying one of the constructs immediately nested inside the other. A composite construct either adds semantics not included in the constructs from which it is composed or the nesting of the one construct inside the other is not conforming.
Directive |
Description |
---|---|
Specifies a loop that can be executed in parallel by multiple threads that are members of multiple teams. |
|
Specifies a loop that will be executed in parallel by multiple threads that are members of multiple teams. It will be executed concurrently using SIMD instructions. |
|
Specifies a loop that will be distributed across the master threads of the teams region. It will be executed concurrently using SIMD instructions. |
|
Specifies a loop that can be executed concurrently using SIMD instructions. |
|
Provides an abbreviated way to specify a parallel region containing a single DO directive. |
|
Specifies a loop that can be executed concurrently using SIMD instructions. It provides a shortcut for specifying a PARALLEL construct containing one SIMD loop construct and no other statement. Specifies a loop that can be executed concurrently using SIMD instructions. It provides a shortcut for specifying a PARALLEL construct containing one SIMD loop construct and no other statement. |
|
Provides an abbreviated way to specify a parallel region containing a single SECTIONS directive. The semantics are identical to explicitly specifying a PARALLEL directive immediately followed by a SECTIONS directive. |
|
Provides an abbreviated way to specify a parallel region containing a single WORKSHARE directive. |
|
Creates a device data environment in a parallel region and executes the construct on that device. This directive only applies when targeting Intel® Many Integrated Core Architecture (Intel® MIC Architecture). |
|
Provides an abbreviated way to specify a TARGET construct that contains aPARALLEL DO construct and no other statement between them. |
|
Specifies a TARGET construct that contains aPARALLEL DO SIMD construct and no other statement between them. |
|
Specifies a TARGET construct that contains aSIMD construct and no other statement between them. |
|
Creates a device data environment and executes the construct on the same device. It also creates a league of thread teams with the master thread in each team executing the structured block. This directive only applies when targeting Intel® Many Integrated Core Architecture (Intel® MIC Architecture). |
|
Creates a device data environment and then executes the construct on that device. It also specifies that loop iterations will be distributed among the master threads of all thread teams in a league created by a TEAMS construct. This directive only applies when targeting Intel® Many Integrated Core Architecture (Intel® MIC Architecture). |
|
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. This directive only applies when targeting Intel® Many Integrated Core Architecture (Intel® MIC Architecture). |
|
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 when targeting Intel® Many Integrated Core Architecture (Intel® MIC Architecture). |
|
Creates a device data environment and then executes the construct on that device. It also specifies that loop iterations will be distributed among the master threads of all thread teams in a league created by a teams construct. It will be executed concurrently using SIMD instructions. This directive only applies when targeting Intel® Many Integrated Core Architecture (Intel® MIC Architecture). |
|
Specifies a loop that can be executed concurrently using SIMD instructions and that those iterations will also be executed in parallel using OpenMP* tasks. |
|
Creates a league of thread teams to execute the structured block in the master thread of each team. It also specifies that loop iterations will be distributed among the master threads of all thread teams in a league created by a TEAMS construct. |
|
Creates a league of thread teams to execute a structured block in the master thread of each team. It also specifies a loop that can be executed in parallel by multiple threads that are members of multiple teams. |
|
Creates a league of thread teams to execute a structured block in the master thread of each team. It also specifies a loop that can be executed in parallel by multiple threads that are members of multiple teams. The loop will be distributed across the master threads of the teams region, which will be executed concurrently using SIMD instructions. |
|
Creates a league of thread teams to execute the structured block in the master thread of each team. It also specifies a loop that will be distributed across the master threads of the teams. |
Footnotes:
1 This directive specifies a composite construct.