I use MFIX for work, in that if I use mkl , linking is (older mkl version) "-L $MKLROOT/lib/em64t -lmkl_lapack -lmkl_em64t -lmkl_core -lvml -lguide -lpthread". If I don't use MKL at all (just ifort) then ifort compiles blas.F and executables are created using link "blas90.a dgtsv90.a".
My problem is using latest mkl 10.3.6. I used link line advisor, and linked as " -L$MKLROOT/lib/intel64 -Wl,--start-group -lmkl_intel_lp64 -lmkl_intel_thread -lmkl_core -Wl,--end-group -openmp -lpthread".
But results of using latest MKL are controry to not using mkl ( sticking to just latest ifort ) and allow ifort to compile blas.F and use "blas90.a dgtsv90.a" . Am I linking right or doing mistake? Older mkl link involves -lmkl_lapack while latest link don't have any lapack. Is it safe to use blas95 and lapack95 instead of Blas90 and lapack90? I was planning to use link involving blas95 and lapack95. In any case results should match with not using mkl (just ifort) any nearer.
Ifort compiler flags used are ' -c -I. -w -w95 -i_dynamic -ip -convert big_endian -assume byterecl -O3 -axW -ip -fp-model precise -ftz '. As '-i_dynamic' flag is used I tried dynamic linking. What mkl link line you recomend? I want to use MKL as it saves nearly 3-5 hours of executable run time. But results should be any nearer.
Additionally, terminal output of
1). uname -a ---------------------------Linux prashant-Vostro1510 3.0.0-12-generic #20-Ubuntu SMP Fri Oct 7 14:56:25 UTC 2011 x86_64 x86_64 x86_64 GNU/Linux
2) $MKLROOT-----------------------------bash: /opt/intel/composer_xe_2011_sp1.6.233/mkl: Is a directory