Intel® Fortran Compiler
Build applications that can scale for the future with optimized code designed for Intel® Xeon® and compatible processors.
29343 Discussions

What libraries, where, for OMP execution on a 1-cpu box?

gib
New Contributor II
676 Views
I want to run a program created with IVF and /Qopenmp on my laptop. When I try to execute it (using one thread) I get the message: This application has failed to start because libiomp5md.dll was not found.
Do I need to install some libraries somewhere and set an environment variable? Or perhaps to run on a single-CPU machine the program needs to be built without OMP?
0 Kudos
6 Replies
TimP
Honored Contributor III
676 Views
There's no point in building with /Qopenmp if you intend to run just one thread, but you ought to be able to do it. If running from the command prompt, the PATH as it is set up in the ifort command prompt window would find the shared libraries. The paths are set by the ifortvars.bat which is included in the Start menu shortcut for ifort command prompt.
If running the default dynamic linked build on a machine where ifort isn't installed, you would have to copy over the shared libraries used by your .exe. When you don't set any environment variables, the standard Windows rules govern where the libraries would be found (same folder as the .exe, standard shared library directories, ...) In current ifort, choice of static or dynamic OpenMP library linking is a separate switch from the choice for the other libraries.
0 Kudos
gib
New Contributor II
676 Views
Quoting - tim18
There's no point in building with /Qopenmp if you intend to run just one thread, but you ought to be able to do it. If running from the command prompt, the PATH as it is set up in the ifort command prompt window would find the shared libraries. The paths are set by the ifortvars.bat which is included in the Start menu shortcut for ifort command prompt.
If running the default dynamic linked build on a machine where ifort isn't installed, you would have to copy over the shared libraries used by your .exe. When you don't set any environment variables, the standard Windows rules govern where the libraries would be found (same folder as the .exe, standard shared library directories, ...) In current ifort, choice of static or dynamic OpenMP library linking is a separate switch from the choice for the other libraries.
Sorry, I failed to make one thing clear. The program is built on another machine (quad-core), and the laptop does not have IVF installed. I want to be able to run the program on the laptop, but I'd prefer not to build a special version if it can be avoided.
0 Kudos
Steven_L_Intel1
Employee
676 Views
When the compiler installed, by default it adds to PATH the path containing the compiler's LIB folder. It sounds as if that didn't happen for you. Depending on how you installed, you may have been asked if this was ok and said no.

Add to PATH the following:

%IFORT_COMPILER11%libia32
0 Kudos
gib
New Contributor II
676 Views
When the compiler installed, by default it adds to PATH the path containing the compiler's LIB folder. It sounds as if that didn't happen for you. Depending on how you installed, you may have been asked if this was ok and said no.

Add to PATH the following:

%IFORT_COMPILER11%libia32
Erm ... to repeat: the laptop does NOT have the compiler installed. I want to run a program built with OMP on one machine, on another machine, single CPU, that does not have MSVS or IVF installed. Is this possible?
0 Kudos
Steven_L_Intel1
Employee
676 Views
Yes. You have to copy the dependent DLLs to the target system. For the Intel DLLs, you can put them in the same folder as the executable or in a folder on PATH. libiomp5md.dll may be the only one you need if you did not ask to link against DLL libraries (you get that one as a DLL by default anyway.) You can find the Intel DLLs in the LIB folder.
0 Kudos
gib
New Contributor II
676 Views
Yes. You have to copy the dependent DLLs to the target system. For the Intel DLLs, you can put them in the same folder as the executable or in a folder on PATH. libiomp5md.dll may be the only one you need if you did not ask to link against DLL libraries (you get that one as a DLL by default anyway.) You can find the Intel DLLs in the LIB folder.
Thanks Steve, I'll try that.

Gib

All OK
0 Kudos
Reply