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

IMSL vs. MKL

elquin
Beginner
1,704 Views
Dear all,
I'm handling huge system code written in fortran 90 which including large sparse matrix (size of 100-900) with ;
MS Visual Studio 2008
Intel Visual Fortran 11.1.065
MKL 10.2 update release 4
IMSL Fortran Library 6.0
The original code was written in CVF with IMSL, but I'm about to move to IVF.
IMSL function used was LSARG, general matrix solver with double precision and I found similar in MKL, GERFSX.
The calculation results are fine but the problem comes from the calculation time.
With MKL, it takes almost 3-4 times more than IMSL.
The compiler option used in MKL are written below :
FORTRAN :
/nologo /debug:full /Od /I"C:\\Program Files\\Intel\\Compiler\\11.1\\065\\mkl\\include" /gen-interfaces /warn:interfaces /real_size:64 /Qsave /align:dcommons /Qzero /module:"Debug\\\\" /object:"Debug\\\\" /traceback /check:bounds /check:uninit /check:format /check:output_conversion /check:arg_temp_created /libs:static /threads /dbglibs /c
LINKER :
/OUT:"Debug\\xxx.exe" /INCREMENTAL:NO /NOLOGO /LIBPATH:"C:\\Program Files\\Intel\\Compiler\\11.1\\065\\mkl\\ia32\\lib" /MANIFEST /MANIFESTFILE:"D:\\Study\\xxx\\xxx\\xxx\\Debug\\xxx.exe.intermediate.manifest" /DEBUG /PDB:"D:\\Study\\xxx\\xxx\\xxx\\Debug\\xxx.pdb" /SUBSYSTEM:CONSOLE /IMPLIB:"D:\\Study\\xxx\\xxx\\xxx\\Debug\\xxx.lib" mkl_lapack95.lib mkl_solver.lib mkl_intel_c.lib mkl_intel_thread.lib mkl_core.lib libiomp5md.lib
FORTRAN :/nologo /debug:full /Od /I"C:\\Program Files\\Intel\\Compiler\\11.1\\065\\mkl\\include" /gen-interfaces /warn:interfaces /real_size:64 /Qsave /align:dcommons /Qzero /module:"Debug\\\\" /object:"Debug\\\\" /traceback /check:bounds /check:uninit /check:format /check:output_conversion /check:arg_temp_created /libs:static /threads /dbglibs /c
LINKER :/OUT:"Debug\\xxx.exe" /INCREMENTAL:NO /NOLOGO /LIBPATH:"C:\\Program Files\\Intel\\Compiler\\11.1\\065\\mkl\\ia32\\lib" /MANIFEST /MANIFESTFILE:"D:\\Study\\xxx\\xxx\\xxx\\Debug\\xxx.exe.intermediate.manifest" /DEBUG /PDB:"D:\\Study\\xxx\\xxx\\xxx\\Debug\\xxx.pdb" /SUBSYSTEM:CONSOLE /IMPLIB:"D:\\Study\\xxx\\xxx\\xxx\\Debug\\xxx.lib" mkl_lapack95.lib mkl_solver.lib mkl_intel_c.lib mkl_intel_thread.lib mkl_core.lib libiomp5md.lib
I also consider to use PARDISO but it'll be the next move.
If there's way to run fast MKL, please let me know.
regards,
0 Kudos
5 Replies
mecej4
Honored Contributor III
1,704 Views
The transcript shows that you have selected full debugging options (debug:full, and many checks, including subscripts). Once you have the program running correctly, recompile with optimization options, and you may find the speed up surprising.
0 Kudos
Aleksandr_Z_Intel
1,704 Views
Dear elquin,
I can't see the code and details or implementation but please tell me if you've been calling ?getrf +?getrs before ?gerfsx to refine.
0 Kudos
elquin
Beginner
1,704 Views
Thank you for your comments but I missed to tell one thing.
Compile options what I wrote are for debugging mode, as mecej4 mentioned, but the speed is differ by 2-3 times in release mode.
0 Kudos
elquin
Beginner
1,704 Views
The procedure what I used is
call getrf, getrs
as common part and
call gerfs or gerfsx
as option.
0 Kudos
mecej4
Honored Contributor III
1,704 Views
To make further progress, we need a working example that shows the stated speed discrepancy. One would expect the speeds of MKL and IMSL to be similar since, as the IMSL manual states,

The underlying code is based on either LINPACK , LAPACK, or ScaLAPACK code depending upon which supporting libraries are used during linking.
0 Kudos
Reply