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

Is Pardiso missing from mkl_s.lib?

Tony_Garratt
Beginner
1,522 Views

I have a mixed language (C++ and Fortran) 32bit project in VS2005 with Intel 10 and MKL 10 versions. I am calling pardiso from Fortran. I am using /iface:cvf. However, when linking I get

mkl_intel_s.lib(_pardiso_std.obj) : error LNK2019: unresolved external symbol _mkl_solver_pardiso referenced in function _PARDISO@64

which makes me think that pardiso is missing from the mkl_s library? This is intentional or a bug?
Thank you!
0 Kudos
1 Solution
ArturGuzik
Valued Contributor I
1,522 Views
No, mkl_solver_s.lib contains pardiso symbols:

Gennady,

reading docs (ver. 10.1)

In MKL 10.1 Gold, the DSS/PARDISO* solver functionality was excluded from mkl_solver*.lib libraries and integrated into the Intel MKL layered structure. So, to use DSS/PARDISO, it is no longer necessary to link with mkl_solver*.lib, but the former link line is still working.

I understand that new application(s) should actually link to mkl_core. Right?

A.

View solution in original post

0 Kudos
5 Replies
ArturGuzik
Valued Contributor I
1,523 Views
No, mkl_solver_s.lib contains pardiso symbols:

Gennady,

reading docs (ver. 10.1)

In MKL 10.1 Gold, the DSS/PARDISO* solver functionality was excluded from mkl_solver*.lib libraries and integrated into the Intel MKL layered structure. So, to use DSS/PARDISO, it is no longer necessary to link with mkl_solver*.lib, but the former link line is still working.

I understand that new application(s) should actually link to mkl_core. Right?

A.
0 Kudos
Gennady_F_Intel
Moderator
1,522 Views
Yes, mkl_core.lib must be used always for linking application with MKL.
For linking sparce solvers functionality you dont need to link these routines without mkl_solver.lib
For example:
for Intel Fortran Compiler:
mkl_intel_c.lib mkl_intel_thread.lib mkl_core.lib libiomp5md.lib
and for Compaq Visual Fortran* (CVF) compiler:
mkl_intel_s.lib mkl_intel_thread.lib mkl_core.lib libiomp5md.lib
--Gennady

0 Kudos
Tony_Garratt
Beginner
1,522 Views
Yes, mkl_core.lib must be used always for linking application with MKL.
For linking sparce solvers functionality you dont need to link these routines without mkl_solver.lib
For example:
for Intel Fortran Compiler:
mkl_intel_c.lib mkl_intel_thread.lib mkl_core.lib libiomp5md.lib
and for Compaq Visual Fortran* (CVF) compiler:
mkl_intel_s.lib mkl_intel_thread.lib mkl_core.lib libiomp5md.lib
--Gennady


In your For example section above, if I am using the VC2005 C++ linker and not the Intel Fortran one (because I am using a VS2005 mixed C++/Fortran project), which set should I be using please? One of the above or something different?
0 Kudos
Tony_Garratt
Beginner
1,522 Views

In your For example section above, if I am using the VC2005 C++ linker and not the Intel Fortran one (because I am using a VS2005 mixed C++/Fortran project), which set should I be using please? One of the above or something different?

Adding mkl_solver.lib solved my problem. I am using MKL 10.0.025.

As a general comment to Intel, I find the MKL documentation, especially on the topic of which libraries to include, not very clear at all - the whole section could do with a re-write.
0 Kudos
Gennady_F_Intel
Moderator
1,522 Views
If you have a more precise sets recommendations, suggestions about improving documentation, Id recommend you submit the issue against MKL to Premier support( https://premier.intel.com/ )
--Gennady

0 Kudos
Reply