Hi

I have two questions about MKL-LAPACK

(1) What is the best (multithreaded) way to invert an arbitrary or a real symmetric matrix

I have tried using dgetrf and dgetri but they are considerably slower than Matlab. I am using dgetrf and dgetri as I have to use the factorization produced by dgetrf multiple times to solve linear systems of equations by providing a different right hand side in each iteration in an inverse modeling problem. I can also use dgetrs after dgetrf for solving my problem but speed wise it does not improve things.

(2) I know MATLAB internally uses MKL so which routine does it use to get much better (I know it is very difficult to answer this) performance than directly using MKL. In my application I have to invert a matrix with dimension 45000X45000 which is very slow and only uses a single thread in MKL in comparison to MATLAB.

A SAMPLE FORTRAN CODE THAT SHOWS MY IMPLEMENTATION OF DGETRF AND DGETRI IS ATTACHED. IN THE ATTACHED CODE I CREATE A POSITIVE DEFINITE MATRIX FOR INVERSION .HOWEVER IN THE REAL APPLICATION THE MATRIX IS NOT POSITIVE DEFINITE

Other details: It is a 64 bit application

Platform: Intel(R) Core(TM) i7-2600 CPU 3.40GHz for the test code/16GB of RAM

************************Application Specific Platform***************************************

vendor_id : GenuineIntel

RAM: 96 GB, cpu family : 6, model : 44, model name : Intel(R) Xeon(R) CPU X5660 @ 2.80GHz

stepping : 2, cpu MHz : 2801.000, cache size : 12288 KB, cpu cores : 6, apicid : 0, fpu : yes

fpu_exception : yes, cpuid level : 11, wp : yes

bogomips : 5600.36, clflush size : 64, cache_alignment : 64, address sizes : 40 bits physical, 48 bits virtual

********************************************************************************************************

MKL: Parallel version

MKL libraries included: mkl_intel_lp64.lib mkl_intel_thread.lib mkl_core.lib libiomp5md.lib mkl_lapack95_lp64.lib

Many thanks