Intel® Fortran Compiler 17.0 Developer Guide and Reference
The Intel® compiler supports most of OpenMP* Version Technical Report 4: Version 5.0 Preview 1. For the complete OpenMP specification, see the OpenMP* Application Program Interface Version TR4: Version 5.0 specification, which is available from the OpenMP* web site (http://www.openmp.org; see OpenMP Specifications on that site). The descriptions of OpenMP* language characteristics in this documentation often use terms defined in that specification.
The OpenMP* API provides symmetric multiprocessing (SMP) with the following major features:
Relieves you from implementing the low-level details of iteration space partitioning, data sharing, thread creation, scheduling, or synchronization.
Provides the benefit of performance available from shared memory multiprocessor and multi-core processor systems on all supported Intel architectures, including those processors with Intel® Hyper-Threading Technology (Intel® HT Technology).
Provides support for the Intel® Xeon Phi™ coprocessor.
The compiler performs transformations to generate multithreaded code based on your placement of OpenMP* directives in the source program, making it simple to add threading to existing software. The Intel compiler compiles parallel programs and supports the industry-standard OpenMP* directives.
The compiler provides Intel-specific extensions to the OpenMP* specification including run-time library routines and environment variables. A summary of the compiler options appear in the OpenMP* Options Quick Reference.
To compile with the OpenMP* API, add the directives in the form of the Fortran program comments to your code. The compiler processes the code and internally produces a multithreaded version which is then compiled into an executable with the parallelism implemented by threads that execute parallel regions or constructs.
The OpenMP* specification does not define interoperability of multiple implementations, so the OpenMP* implementation supported by other compilers and OpenMP* support in the Intel compiler might not be interoperable. Even if you compile and build the entire application with one compiler, be aware that different compilers might not provide OpenMP* source compatibility that enable you to compile and link the same set of application sources with a different compiler and get the expected parallel execution results.
The Intel compiler includes two sets of OpenMP* libraries, as described in OpenMP* Source Compatibility and Interoperability with Other Compilers.