Intel® oneAPI Math Kernel Library
Ask questions and share information with other developers who use Intel® Math Kernel Library.

Runtime error : cannot locate entry point on mkl_serv_print_verbose_info ?

Rui_S_1
Beginner
1,439 Views

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
1,441 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

0 Kudos
10 Replies
Andrey_B_Intel1
Employee
1,441 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

0 Kudos
Rui_S_1
Beginner
1,441 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"

 

 

0 Kudos
Ying_H_Intel
Employee
1,441 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 

 

0 Kudos
Rui_S_1
Beginner
1,441 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.

 

0 Kudos
Andrey_B_Intel1
Employee
1,442 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

0 Kudos
Rui_S_1
Beginner
1,441 Views

Thanks all~

0 Kudos
reyes__randolph
Beginner
1,441 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

 

 

0 Kudos
reyes__randolph
Beginner
1,441 Views

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

 

Thanks and regards,

 

Randolph

0 Kudos
Gennady_F_Intel
Moderator
1,441 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

0 Kudos
Gennady_F_Intel
Moderator
1,441 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

0 Kudos
Reply