Visible to Intel only — GUID: GUID-13571901-458E-4618-A0D2-9A0A1106DF83
Visible to Intel only — GUID: GUID-13571901-458E-4618-A0D2-9A0A1106DF83
HINT
Parallel Directive Clause: Provides information about the expected runtime behavior of the region that corresponds to the construct where it is specified for optimization purposes.
Syntax
HINT (hint-expression)
hint-expression |
Is an integer expression with a kind type of OMP_SYNC_HINT_KIND with a value that is a valid synchronization hint. |
The HINT clause provides information about the expected runtime properties of the construct where it appears. It does not change the semantics of the construct.
If a HINT clause does not appear in a construct that accepts a HINT clause, it is as if HINT (OMP_SYNC_HINT_NONE) appears in the construct.
The predefined KIND type OMP_SYNC_HINT_KIND is used to specify the kind-type parameter for an integer that is to be used in hint-expression. The following table lists the predefined synchronization HINT constants. They appear in the Fortran module file omp_lib.mod and the Fortran include file omp_lib.h.
Synchronization HINT constant name |
Value |
Description |
---|---|---|
OMP_SYNC_HINT_NONE |
0 |
Provides documentation clarity. It has no effect on the construct transformation. |
OMP_SYNC_HINT_UNCONTENDED |
1 |
Indicates low contention in the construct. Few threads are expected to encounter the region at the same time in a manner requiring synchronization. |
OMP_SYNC_HINT_CONTENDED |
2 |
Indicates high contention in the construct. Many threads will encounter the region at the same time requiring synchronization. |
OMP_SYNC_HINT_SPECULATIVE |
4 |
Suggests that the operation be implemented using speculative techniques such as transactional memory. |
OMP_SYNC_HINT_NONSPECULATIVE |
8 |
Suggests that the operation not be implemented using speculative techniques such as transactional memory. |
Synchronization HINT constants can be combined in expressions with the plus (+) operator. Combining a synchronization HINT constant with OMP_SYNC_HINT_NONE is the same as just specifying the synchronization HINT constant alone.
You cannot combine the following HINT constants:
OMP_SYNC_HINT_UNCONTENDED and OMP_SYNC_HINT_CONTENDED
OMP_SYNC_HINT_SPECULATIVE and OMP_SYNC_HINT_NONSPECULATIVE
An implementation can provide additional pre-defined synchronization HINT constants.