OpenMP* support changes in Intel Performance libraries

OpenMP static library (libomp5*.lib on Windows* and libomp5*.a on Linux) has been deprecated since Intel® IPP 7.0.

In the figure shown below the different versions of the static OpenMP libraries are shown for a Windows* installation of Intel® Parallel Studio.

static-openmp-libs.jpg

We recommend you to use the dynamic version of the OpenMP library instead of the static version.

The dynamic OpenMP library is located in Composer[XE] 20xx\redist\compiler\<ia32\intel64>  folder.   For e.g: the intel64 dynamic OpenMP library is located in Composer[XE] 20xx\redist\compiler\ia32 folder in a Windows* installation as shown in Figure below.

dynamic-openmp.jpg


OpenMP Run-time Libraries Changed since Intel IPP 6.0 and Intel MKL 10.1

Since the Intel IPP® 6.0 and Intel® MKL 10.1, the OpenMP libraries ( also called Threading Runtime Libraries) are switching from the legacy OpenMP* run-time library (libguide*) to the compatibility library (libiomp*).

The dynamic library, libguide40.dll, is included in the later releases for backwards compatibility and have been removed in intel®  IPP 7.0 and Intel® MKL 10.3.

You are strongly encouraged to dynamically link in the compatibility OpenMP* run-time library libiomp (i.e libiomp5md.lib and libiomp5md.dll , located in the [Compiler Dir]\lib directory), even if other libraries are linked statically.
Linking to static OpenMP* run-time library (i.e libiomp5mt.lib)is not recommended. Because multiple OpenMP libraries in one application causes performance problems (too many threads) and may cause correctness problems if more than one copy is initialized. See  OMP Abort: Initializing libiomp5mt.dll but found libiomp5md.dll already initialized

For who are using Intel® IPP or Intel® MKL from Intel® Parallel Composer or Intel® C++ Composer XE (formerly Intel® C++ Compiler Professional Edition), please note that all OpenMP libraries are under [Composer InstallDir]\lib.  For example,
Intel Compiler Professional for Mac OS: it includes IPP as part of product, the libiomp5.dylib, libiomp5.a are in directory /opt/intel/Compiler/xx.x/0xx/lib by default.
In Intel® Parallel Composer: they are in C:\Program Files\Intel\Parallel Studio\Composer\lib\ia32
In Intel® C++ Composer XE 2011 for Windows* : libiomp*.lib are in C:\Program Files (x86)\Intel\ComposerXE-2011\compiler\lib\ia32  and  libiomp*.dll in C:\Program Files (x86)\Intel\ComposerXE-2011\redist\ia32\compiler\"

See one related known issue: libiomp5md.dll not found when running ippiDemo or ippsDemo in 7.0 update 2

Operating System

Dynamic Link

Static Link

Linux

libiomp5.so

libiomp5.a

Mac OS X

libiomp5.dylib

libiomp5.a

Windows

libiomp5md.lib(dynamic import library)
libiomp5md.dll

libiomp5mt.lib


* libiomp5md.lib is a stub library (also called "import library") that is paired with the DLL libiomp5md.dll

For more information, please refer to the Intel® Compilers document Intel® C++ Compiler User and Reference Guide (section Optimizing Applications > Using Parallelism: OpenMP* Support > Libraries, Directives, Clauses, and  Environment Variables and OpenMP* Support Libraries)

 

Per informazioni complete sulle ottimizzazioni del compilatore, consultare l'Avviso sull'ottimizzazione