Community
cancel
Showing results for 
Search instead for 
Did you mean: 
elquin
Beginner
242 Views

IMSL vs. MKL

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
Black Belt
242 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.
242 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.
elquin
Beginner
242 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.
elquin
Beginner
242 Views

The procedure what I used is
call getrf, getrs
as common part and
call gerfs or gerfsx
as option.
mecej4
Black Belt
242 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.
Reply