Community
cancel
Showing results for 
Search instead for 
Did you mean: 
Ngu_Soon_Hui
Beginner
247 Views

The procedure entry point mkl_serv_deallocate could not be located

I have just upgraded to Intel Visual Fortran Composer XE 2013. However I found that my sample code cannot run due to this error:

The procedure entry point mkl_serv_deallocate could not be located in the dynamioc link library mkl_intel_thread.dll

Previously, this sample runs fine with Intel Visual Fortran version 11. Any reason for this wierd error?

I attach the screenshot and a sample file for your perusual. 

I am running Windows 7 Intel(R) Core(TM) i7 CPU, 64 bit OS. 

0 Kudos
15 Replies
Gennady_F_Intel
Moderator
247 Views

into fortran64.vfproj, I see the following : Name="VFLinkerTool" SuppressStartupBanner="true" AdditionalLibraryDirectories="C:\Program Files\Intel\Compiler\11.0\066\fortran\mkl\em64t\lib" SubSystem="subSystemConsole"/> You need to change accordingly the installation into your case. as an example: AdditionalLibraryDirectories="C:\Program Files\Intel\Intel\Composer XE 2013\mkl\lib\intel64"
Ngu_Soon_Hui
Beginner
247 Views

I have fixed the reference, but it seems that the same problem still occurs. I have attached the project again for your understanding.

Just to show you all the vfproj compile option:

for fortran: /nologo /O2 /I"C:\Program Files (x86)\Intel\Composer XE 2013\compiler\include" /I"E:\Development\E7 .Net2\EigenSolverForHelp\arpack\x64\Debug" /module:"x64\Debug\\" /object:"x64\Debug\\" /Fd"x64\Debug\vc110.pdb" /libs:dll /threads /dbglibs /c

for linker:/OUT:"x64\Debug\fortran64.exe" /NOLOGO /LIBPATH:"C:\Program Files (x86)\Intel\Composer XE 2013\mkl\lib\intel64" /LIBPATH:"E:\Development\E7 .Net2\EigenSolverForHelp\arpack\Debug" /MANIFEST /MANIFESTFILE:"E:\Development\E7 .Net2\EigenSolverForHelp\fortranexample\x64\Debug\fortran64.exe.intermediate.manifest" /MANIFESTUAC:"level='asInvoker' uiAccess='false'" /SUBSYSTEM:CONSOLE /IMPLIB:"E:\Development\E7 .Net2\EigenSolverForHelp\fortranexample\x64\Debug\fortran64.lib" mkl_intel_lp64_dll.lib mkl_intel_thread_dll.lib  mkl_core_dll.lib libiomp5md.lib

As you can see above, all of them are now pointed to the correct path. 

Gennady_F_Intel
Moderator
247 Views

based on the linker and compile lines - all look correct. 

I see this is the MVSC 11 (Microsoft Visual Studio Solution File, Format Version 11.00  ) wich is not installed installed right now - do you have opportunities to give the 2010 solution?

Ngu_Soon_Hui
Beginner
247 Views

Hi, I don't have the VS 2010... does it matter? It shouldn't matter, right?

Ngu_Soon_Hui
Beginner
247 Views

May I know what to do in this case? The more I look at it, the more I think that installing VS 2010 on my machine is not really a viable solution. I would need to distribute my code to my clients, and many of them who are not programmers. So If my code requires VS 2010 to work, then I would be in a very hard situation.

Do you think this problem can be fixed by installing some C++ prerequisite packages?

P/S: I did not receive notification when someone replied to my thread, anyway to fix this?

Gennady_F_Intel
Moderator
247 Views

I don't think this is the VS studio problem. the solution you gave based on VS2012 with is not available on my side, therefore I cannot reproduce the issue. that's why I asked if it possible to give the VS2010 example. in your case, can you try, as an example, to build your example statically and check how it will work? 

regard to notification - Notification doesn't work at this moment. We are working on that probem.

Ngu_Soon_Hui
Beginner
247 Views

Gennady Fedorov (Intel) wrote:

I don't think this is the VS studio problem. the solution you gave based on VS2012 with is not available on my side, therefore I cannot reproduce the issue. that's why I asked if it possible to give the VS2010 example. in your case, can you try, as an example, to build your example statically and check how it will work? 

I ran the /x64/fortran64.exe on a Windows 7 64 bit machine, and I this error. So I use dependency walker to look into the fortran64.exe, and I found that the ieshims.dll is missing as shown in the screenshot.

Any idea how to fix this?

Ngu_Soon_Hui
Beginner
247 Views

Gennady Fedorov (Intel) wrote:

I don't think this is the VS studio problem. the solution you gave based on VS2012 with is not available on my side, therefore I cannot reproduce the issue. that's why I asked if it possible to give the VS2010 example. in your case, can you try, as an example, to build your example statically and check how it will work? 

I ran the /x64/fortran64.exe on a Windows 7 64 bit machine, and I this error. So I use dependency walker to look into the fortran64.exe, and I found that the ieshims.dll is missing as shown in the screenshot.

Any idea how to fix this?

Ngu_Soon_Hui
Beginner
247 Views

This is a screenshot of the dependency walker. This is what happens when I look into \x64\fortran64.exe on a 64 bit machine. As you can see, it is an ieframe.dll error, with the error

"Error: At least one module has an unresolved import due to a missing export function in an implicitly dependent module."

Ngu_Soon_Hui
Beginner
247 Views

I think I have some findings on this,

when I view the "C:\Program Files (x86)\Intel\Compiler\11.0\066\fortran\mkl\em64t\bin\mkl_intel_thread.dll" in dependency walker, I cannot find the "mkl_serv_deallocate" method! Obviously, my mkl_intel_thread.dll is of the wrong version. 

Any reason why this is so? 

I am using Intel Visual Fortran Composer XE 2013.

Gennady_F_Intel
Moderator
247 Views

where are you looking for mkl_serv_deallocate? into the header files? this is internal service functions and we don't provide the API for this routine. 

Fortran Composer 2013 contains the version of MKL 11.0.

1)what i suggest you to find the cause of the problem - please try to put the executable into directory where all mkl's 64 bit dll were installed. e.g - in my case "C: ...l\Composer XE 2013\redist\intel64\mkl\"  

2) temporarily put into this directory the libiomp5md.dll   from  "C...l\Composer XE 2013\redist\intel64\compiler\"

and then try to launch theexecutable form there.  

Ngu_Soon_Hui
Beginner
247 Views

Gennady Fedorov (Intel) wrote:

where are you looking for mkl_serv_deallocate? into the header files? this is internal service functions and we don't provide the API for this routine. 

Fortran Composer 2013 contains the version of MKL 11.0.

1)what i suggest you to find the cause of the problem - please try to put the executable into directory where all mkl's 64 bit dll were installed. e.g - in my case "C: ...l\Composer XE 2013\redist\intel64\mkl\"  

2) temporarily put into this directory the libiomp5md.dll   from  "C...l\Composer XE 2013\redist\intel64\compiler\"

and then try to launch theexecutable form there.  

Your tips work, thanks.

I think I know how to reproduce this problem:

  1. First install an old version of intel visual fortran, maybe version 11?
  2. The PATH variable of that computer will be assigned one more entry, such as this ""C: ...l\compiler 11.0\redist\intel64\mkl\". This is correct
  3. Then uninstall version 11, and reinstall Fortran Composer 2013. Now the above entry is NOT updated to  "C: ...l\Composer XE 2013\redist\intel64\mkl\". But it should!
  4. Or else it will cause the problem I see. 
Konstantin_S_1
Beginner
247 Views

The same problem and the same solution with the "Path" system variable. Thank you very much!

George_P_
Beginner
247 Views

This problem has been reported repeatedly by various users over the years. To have to uninstall and reinstall a compiler or libraries to correct it is not good practice. In my case the path is set correctly and DependencyWalker clearly shows that the problem is that neither MKL_INTEL_THREAD.DLL nor MKL_CORE.DLL can find the required entry points. The libraries are all 64 bit the application is 64 bit and it is running under Visual Studio 2017 on a 64 bit Windows 10 installation. The application is directly from the Intel publication and no other application shows this problem.

Does anyone have a reliable solution?

 

George_P_
Beginner
247 Views

Careful checking of the path (as tedious as that is) eventually corrected the issue.  

Reply