Community
cancel
Showing results for 
Search instead for 
Did you mean: 
Rui_S_1
Beginner
462 Views

Runtime error : cannot locate entry point on mkl_serv_print_verbose_info ?

Jump to solution

Hello everyone, I used VS 2013 + IVF 2013 + MSMPI + PetSC + microsoft HPC those environment to build a fortran multithreaded console app.

The OpenMP conditional compilation = yes, use intel math kernel = No, Process OpenMP Directives = Generate Parallel code.

The source code builded successfully and works fine in developer machine .

But when I attemped execute builded .exe on client machine it come to runtime error like this :

The procedure entry point could not be located: mkl_serv_print_verbose_info in the dynamic link libraryOn the EXE.

On client machine I do not install any develop environment, only copied libiomp5md.dll , mkl_core.dll, mkl_intel_thread.dll these 3 files to the execute directory, I had adjust compile conditions and makes lots of changes in vs-project property, it coundn't work .

So question is, how should I do to make sure the builded exes runs correct with no errors on client machine with no develop environment.

 

0 Kudos
1 Solution
Andrey_B_Intel1
Employee
464 Views

Hi Rui,

You need to set MKLROOT environment variable to the path where your MKL structure is. That is the folder where originally \lib folder resides.

Also please add to PATH environment variable path where your dynamic MKL and OMP dynamic libraries are.

See mklvars.bat comes with Windows MKL distribution for more details.

 

 - Andrey

View solution in original post

10 Replies
Andrey_B_Intel1
Employee
464 Views

Hi Rui,

Please share some details on your environment:

  1. What Windows version and architecture on both machines?
  2. Is your app 32-bit or 64-bit?
  3. Are you linking statically or dynamically? I suppose dynamically but just to be sure.
  4. What's your environment variables on build and target machines before you run the app? I.e. run 'set | findstr /I PATH'
  5. What link-line was used to build the app?

 

In general, I think adding path where you put MKL + OMP libraries to PATH will fix the issue.

 

 - Andrey

Rui_S_1
Beginner
464 Views

Andrey Balanchuk (Intel) wrote:

Hi Rui,

Please share some details on your environment:

  1. What Windows version and architecture on both machines?
  2. Is your app 32-bit or 64-bit?
  3. Are you linking statically or dynamically? I suppose dynamically but just to be sure.
  4. What's your environment variables on build and target machines before you run the app? I.e. run 'set | findstr /I PATH'
  5. What link-line was used to build the app?

 

In general, I think adding path where you put MKL + OMP libraries to PATH will fix the issue.

 

 - Andrey

Thanks for reply.

1.windows 10 enterprise x64 on both machines

2.app is 64-bit

3.using dynamically

4.environment variables on build machine is OK ,I checked the 'Path' for many times. Target machine' only installed Microsoft MPI , the client user donot like install other develop environment, for some reason

5.AdditionalIncludeDirectories="C:\Program Files\Microsoft HPC Pack 2012\Inc;C:\Program Files\PETSc for Windows\PETSc\include;C:\Program Files\Microsoft MPI\Inc;C:\Program Files\PETSc for Windows\PETSc\c-opt_icl_mkl\include;C:\Program Files (x86)\Intel\Composer XE 2013 SP1\compiler\include;C:\Program Files (x86)\Intel\Composer XE 2013 SP1\compiler\include\intel64"

 AdditionalLibraryDirectories="C:\Program Files\PETSc for Windows\PETSc\c-opt_icl_mkl\lib;C:\Program Files\PETSc for Windows\lib\intel64;C:\Program Files\PETSc for Windows\PETSc\externalpackages\lib;C:\Program Files\Microsoft MPI\Lib\amd64;C:\Program Files (x86)\Intel\Composer XE 2013 SP1\compiler\lib\intel64"

 

 

Ying_H_Intel
Employee
464 Views

Hi Rui S, 

The problem looks be here   using dynamically  and   " On client machine I do not install any develop environment, only copied libiomp5md.dll , mkl_core.dll, mkl_intel_thread.dll these 3 files to the execute directory,", 

1) May you please try  static link MKL  (imkl_intel_lp64.lib +  etc, please refer to MKL link advisor : https://software.intel.com/en-us/articles/intel-mkl-link-line-advisor/) and see if it works. 

2) if you dynamic link MKL,  the 3 file is not enough,  You may try copy all of dll under MKL redist folder, then see if it works. 

You can see the dll's purpose from MKL userguide documentation, which was in MKL install directory. 

Best Regards,

Ying 

 

Rui_S_1
Beginner
464 Views

Ying H. (Intel) wrote:

Hi Rui S, 

The problem looks be here   using dynamically  and   " On client machine I do not install any develop environment, only copied libiomp5md.dll , mkl_core.dll, mkl_intel_thread.dll these 3 files to the execute directory,", 

1) May you please try  static link MKL  (imkl_intel_lp64.lib +  etc, please refer to MKL link advisor : https://software.intel.com/en-us/articles/intel-mkl-link-line-advisor/) and see if it works. 

2) if you dynamic link MKL,  the 3 file is not enough,  You may try copy all of dll under MKL redist folder, then see if it works. 

You can see the dll's purpose from MKL userguide documentation, which was in MKL install directory. 

Best Regards,

Ying 

Hi, I change to static link MKL, and attemped copy all MKL/MPI dll and lib files to the execute directory, it still cannot work. Report the same error.

I figure out if I want to run the program on client machine, I MUST install those develop environment on their machines.

 

Andrey_B_Intel1
Employee
465 Views

Hi Rui,

You need to set MKLROOT environment variable to the path where your MKL structure is. That is the folder where originally \lib folder resides.

Also please add to PATH environment variable path where your dynamic MKL and OMP dynamic libraries are.

See mklvars.bat comes with Windows MKL distribution for more details.

 

 - Andrey

View solution in original post

Rui_S_1
Beginner
464 Views

Thanks all~

reyes__randolph
Beginner
464 Views

Andrey Balanchuk (Intel) wrote:

Hi Rui,

You need to set MKLROOT environment variable to the path where your MKL structure is. That is the folder where originally \lib folder resides.

Also please add to PATH environment variable path where your dynamic MKL and OMP dynamic libraries are.

See mklvars.bat comes with Windows MKL distribution for more details.

 

 - Andrey

 

Hello,

Which libraries are the MKL and OMP dynamic libraries?

Thanks and regards,

Randolph

 

 

reyes__randolph
Beginner
464 Views

Where can I find these:  dynamic MKL and OMP dynamic libraries?

 

Thanks and regards,

 

Randolph

Gennady_F_Intel
Moderator
464 Views

all mkl shared objects are located into redist ia32 and intel64 folders correspondingly - see more details into mkl's user guide follow e.x this https://software.intel.com/en-us/mkl-windows-developer-guide-high-level-directory-structure

the best ( or may the fastest ) way to set all needed systems paths - to use mklvars.bat file

Gennady_F_Intel
Moderator
464 Views

forget to add regarding Openmp dll - you may find out the libiomp5md.dll into  ..\windows\redist\intel64\compiler\ for intel64 IA and ..\windows\redist\ia32\compiler\  for 32 IA correspondingly

Reply