About OpenMP*

For applications which are written to take advantage of OpenMP, when using this option an application may run faster on systems with multiple processors or hyperthreading.

  • Not all programs can take advantage of parallelism

  • It can be difficult to debug timing-related problems

  • Using this option may slow down performance on single-processor systems

    The Intel® C++ Compiler supports the OpenMP* API version 2.0, while the Intel Fortran Compiler supports OpenMP 2.0, except for the WORKSHARE directive. Both the C++ and the Fortran compilers perform code transformation to generate multithreaded code automatically as determined by your OpenMP* directive annotations to the program.

    The debugger offers info support for OpenMP. For IA-32 applications, you can use the Microsoft debugger and Microsoft VS.Net* Debugger. For Itanium®-based applications, you can use the Intel® Enhanced Debugger (EDB) for Itanium®-based applications. See the Compiler User's Guide for more information on debugging.

    Use the Intel threading tools to optimize for Intel architecture in tandem with OpenMP. The Intel threading tools include the following:

    • Intel® Thread Checker 2.0
    • Thread Profiler 2.0

    Find out more about these tools at the Intel® Software Development Products website.

    To take advantage of the OpenMP option (detailed on the next page), an application must properly use OpenMP directives and have significant opportunities for parallelism. And you must write code to be thread-safe. Loops must meet same criteria as those for HLO and vectorization.

    For complete information on the OpenMP* standard, visit the OpenMP website at www.openmp.org.

    For complete information on the Intel compilers' support for OpenMP, see the Intel compiler User's Guide.