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

How to configure libs when trying to use Inspector-executor Sparse BLAS Routines and Pardiso

wen_qiang_z_
Beginner
598 Views

Here is my environment : Visual Studio Community 2017 + Parallel Studio XE 2019 update 1

I`ve tried Link line advisor but it failed with 'No symbolic file loaded for mkl_avx2.dll'

And the current libs linked in are:

mkl_core.lib

mkl_intel_thread.lib

mkl_intel_ilp64.lib

mkl_blas95_ilp64.lib

impi.lib

Besides, I`ve tried add libomp5md.lib but it didn`t work for the problem. 

0 Kudos
5 Replies
Gennady_F_Intel
Moderator
598 Views

if you link with ILP API on win OS, then don't forget to add /DMKL_ILP64 option or link LP64 API only, In the case if you are not going to use distributed computations, you don't need to link with mpi libs at all.  

0 Kudos
Gennady_F_Intel
Moderator
598 Views

You may also look at this KB article shows how to use mkl based application from within VS.

0 Kudos
wen_qiang_z_
Beginner
598 Views

Hello!

I`ve tried what you suggested, bur things did not become better than before.

And I will explain my problems in detail.

At first, if I link mkl_blas95_lp64.lib mkl_core.lib mkl_intel_lp64.lib mkl_intel_thread.lib with /Qmkl:parallel ,when calling some Sparse Blas functions like mkl_sparse_spmm and mkl_sparse_z_add, it tends to lead to some wrong number in the result sparse matrix when trying to call pardiso, and the check routine gives the feedback of something wrong in ja[ ] like ja(i) = 1591 and ja(i+1) is 1423 which should be 1592 . 

And if I turn off the 'Use Intel Math Kernel Library',  the program will meet some Access Conflict with error code 0xC0000005, which is very 'interesting'

And if I link a third-party`s library named 'Mumps' whose configuration need mkl_scalapack_lp64.lib and mkl_blacs_intelmpi_lp64.lib, The program works even though I don`t run the codes connect with mumps, but it fails with for_dealloc_allocatable function error when I go to the assembly language, in fact, it is the next step after call for_dealloc_allocatable which is 'move'.

I can not paste my source code here for some reason but I do need your help and advises, so can we talk using e-mail or some ways faster than here? I do not know if it is appropriate to do this but I`ve been suffered from this problem for such a long time and I`ve tried all what I can do. 

0 Kudos
wen_qiang_z_
Beginner
598 Views

And here is my command line of Fortran

/nologo /debug:full /MP /Od /fpp /I"C:\Program Files (x86)\IntelSWTools\compilers_and_libraries_2019.1.144\windows\mkl\include" /Qopenmp /warn:all /module:"x64\Debug\\" /object:"x64\Debug\\" /Fd"x64\Debug\vc150.pdb" /traceback /check:bounds /check:stack /libs:dll /threads /dbglibs /Qmkl:parallel /c

and the command line of Linker

/OUT:"x64\Debug\GEM.exe" /INCREMENTAL /NOLOGO /LIBPATH:".\WindowsLibrary\VS2010" /NODEFAULTLIB:"libcmt.lib" /MANIFEST /MANIFESTFILE:"x64\Debug\GEM.exe.intermediate.manifest" /MANIFESTUAC:"level='asInvoker' uiAccess='false'" /DEBUG /PDB:"F:\Master\marine\MarineEM\GEM\x64\Debug\GEM.pdb" /SUBSYSTEM:CONSOLE /STACK:10000000,10000000 /IMPLIB:"F:\Master\marine\MarineEM\GEM\x64\Debug\GEM.lib" tetcall.lib mkl_blas95_lp64.lib mkl_core.lib mkl_intel_lp64.lib mkl_intel_thread.lib 

0 Kudos
wen_qiang_z_
Beginner
598 Views

Besides, tetcall.lib is a library to use Tetgen of which is a Quality Tetrahedral Mesh Generator and a 3D Delaunay Triangulator, and only used to get the information of inputted mesh

0 Kudos
Reply