The Intel® Compiler supports most of the 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 Specificationson 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).
The compiler performs transformations to generate multithreaded code based on your placement of OpenMP
pragmasin the source program, making it simple to add threading to existing software. The Intel compiler compiles parallel programs and supports the industry-standard OpenMP
Parallel Processing with OpenMP
To compile with the OpenMP API, add the
pragmasto 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.
Using Other Compilers
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.