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

Missing symbols in mkl_scalapack_lp_dll.lib

akiladila
Beginner
521 Views
Hello All,

I am trying to dynamically link against mkl_scalapack_lp64.dll. When I build my application linking against the static mkl_scalapack_lp64.lib everything compiles fine.

However, when I link against the dynamic library mkl_scalapack_lp64_dll.lib, receive a link error saying that the following symbols cannot be found:

PCGEMR2D
PDGEMR2D
PSGEMR2D
PZGEMR2D

When I perform a dumpbin /ALL mkl_scalapack_lp64.lib I see:
[lots of symbols]
6B PCGEMR2D
[more symbols]
5D PDGEMR2D
...


However, when I perform a dumpbin /ALL on mkl_scalapack_lp64_dll.lib, I cannot find these symbols, likewise I cannot find them in mkl_scalapack_lp64.dll.

Being an industrious middle-aged developer I decided to use the MKL DLL Builder Tool. I copied the files in $(MKLROOT)\\tools\\builder to a directory C:\\mylibs\\scalapack_build. I created a scalapack_cdecl_list file by perfroming a dumpin /EXPORTS on mkl_scalapack_lp64_dll.lib. I cleaned up my scalapack_cdecl_list file to look like the other *_cdecl_list files in the directory...(thank you emacs) and then I add the symbols that I was trying to use in mkl_scalapack_lp64.lib that were unresolved when I linked against mkl_scalapack_lp64_dll.lib.

NOTE: It was also necessary to remove $(buf_lib) from the link line as Visual Studio 2008 no longer distributes as part of the SDK.
I then executed the command:
nmake em64t interface=lp64 export=scalapack_cdecl_list name=mkl_scalapack_lp64 MKLROOT="C:\\Program Files (x86)\\Intel\\Compiler\\11.1\\054"\\mkl
and received lots of link errors...
next I tried to add mkl_scalapack_lp64.lib to the link line and this to failed.

Alas I have come to the place where MKL Gurus far smarter than I skulk the murky depths of the Internet in an attempt to shed some light on this problem...

Here is what I would like to know:
1. Are the unresolved symbols that cause link errors when I link against mkl_scalapack_lp64_dll.lib a known issue?
2. Is there a way to work around my problem using the builder? And if so what other library/libraries do I need to link against?
Regards
0 Kudos
2 Replies
mecej4
Honored Contributor III
521 Views
Try using the MKL link advisor http://software.intel.com/en-us/articles/intel-mkl-link-line-advisor/ . Please break up your posts into paragraphs to make them easier to read.
0 Kudos
akiladila
Beginner
521 Views
Hello mecej4,

As for the formating blech! There must be something wrong with my browser or the auto formator for this textbox.

Anyway, the first thing I did was try the link-line-advisor...it has saved me in the past, however the link line that it gives me is:
mkl_scalapack_lp64_dll.lib mkl_solver_lp64.lib mkl_intel_lp64_dll.lib mkl_intel_thread_dll.lib mkl_core_dll.lib mkl_blacs_lp64_dll.lib -Qopenmp

Unfortunately, I don' t think the problem is with the link line itself, but with the symbols that are missing from the mkl_scalapack_lp64_dll.lib, because I can compile an application that uses the mkl_scalapack_lp64.dll, that does not reference these symbols, using the link line given by the link-line advisor.

Regards,

Aquil H. Abdullah
0 Kudos
Reply