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

lapack routine "dsyevr" in MKL 10.0.3 vs 9.0

miro_ilias
Beginner
274 Views

Greetings,

let us have the "test_dsyevr.F" DSYERV-testing program, written by one of our developers.

--------------------------------------------------------------------------------------------

We report wrong results [amd64 Cent-OS Linux x86_64] with ifort 10.1/mkl 10.0.3:

miro@opteron.tau.ac.il:~/qch_software/development/svn_dirac/intel_dbg/trunk/utils/.ifort
test_dsyevr.F -L/opt/intel/mkl/10.0.3.020/lib/em64t -lmkl_lapack -lguide -lpthread -lmkl
miro@opteron.tau.ac.il:~/qch_software/development/svn_dirac/intel_dbg/trunk/utils/.a.out
Testing DSYEVR diagonalization of 19 **2 matrix
Using 32 bit integers
Allocating matrix and vectors 6 kB
Allocating work buffers 4 kB
Diagonalizing..
Eigenvalues sorted ascending: T
Maximum absolute eigenvalue error: 1.665334536937735E-015
Maximum absolute vector element error: 0.548992898178129

and also using '-i8' flag:

miro@opteron.tau.ac.il:~/qch_software/development/svn_dirac/intel_dbg/trunk/utils/.ifort -i8 test_dsyevr.F
-L/opt/intel/mkl/10.0.3.020/lib/em64t -lmkl_lapack -lguide -lpthread -lmkl_intel_ilp64 -lmkl
miro@opteron.tau.ac.il:~/qch_software/development/svn_dirac/intel_dbg/trunk/utils/.a.out
Testing DSYEVR diagonalization of 19 **2 matrix
Using 64 bit integers
Allocating matrix and vectors 6 kB
Allocating work buffers 5 kB
Diagonalizing..
Eigenvalues sorted ascending: T
Maximum absolute eigenvalue error: 1.665334536937735E-015
Maximum absolute vector element error: 0.548992898178129
miro@opteron.tau.ac.il:~/qch_software/development/svn_dirac/intel_dbg/trunk/utils/.

while on another machine [PC linux x86_64] with ifort 9.1/mkl 9.0 we got correct results:

ilias@fe4.dcsc.sdu.dk:~/QCH_Work/qch_progs/dirac/mpi_ifort_optim_test/trunk/utils/.ifort test_dsyevr.F
-L/opt/intel/mkl/9.0_beta/lib/em64t -lmkl_lapack -lguide -lpthread -lmkl
ilias@fe4.dcsc.sdu.dk:~/QCH_Work/qch_progs/dirac/mpi_ifort_optim_test/trunk/utils/.a.out
Testing DSYEVR diagonalization of 19 **2 matrix
Using 32 bit integers
Allocating matrix and vectors 6 kB
Allocating work buffers 10 kB
Diagonalizing..
Eigenvalues sorted ascending: T
Maximum absolute eigenvalue error: 2.498001805406602E-016
Maximum absolute vector element error: 2.672851196151180E-015

and also with the '-i8' option:

ilias@fe4.dcsc.sdu.dk:~/QCH_Work/qch_progs/dirac/mpi_ifort_optim_test/trunk/utils/.ifort -i8 test_dsyevr.F -L/opt/intel/mkl/9.0_beta/lib/em64t -lmkl_lapack -lguide -lpthread -lmkl
ilias@fe4.dcsc.sdu.dk:~/QCH_Work/qch_progs/dirac/mpi_ifort_optim_test/trunk/utils/.a.out
Testing DSYEVR diagonalization of 19 **2 matrix
Using 64 bit integers
Allocating matrix and vectors 6 kB
Allocating work buffers 11 kB
Diagonalizing..
Eigenvalues sorted ascending: T
Maximum absolute eigenvalue error: 2.498001805406602E-016
Maximum absolute vector element error: 2.672851196151180E-015

It looks that there is some bug in the MKL lapack 10.0.3. Any help ? Thanks, Miro.

0 Kudos
2 Replies
Gennady_F_Intel
Moderator
274 Views

I would recommend you submit this issue against MKL to Premier support( https://premier.intel.com/ )

Gennady

0 Kudos
miro_ilias
Beginner
274 Views
Quoting - miro_ilias

Greetings,

let us have the "test_dsyevr.F" DSYERV-testing program, written by one of our developers.

--------------------------------------------------------------------------------------------

We report wrong results [amd64 Cent-OS Linux x86_64] with ifort 10.1/mkl 10.0.3:

miro@opteron.tau.ac.il:~/qch_software/development/svn_dirac/intel_dbg/trunk/utils/.ifort
test_dsyevr.F -L/opt/intel/mkl/10.0.3.020/lib/em64t -lmkl_lapack -lguide -lpthread -lmkl
miro@opteron.tau.ac.il:~/qch_software/development/svn_dirac/intel_dbg/trunk/utils/.a.out
Testing DSYEVR diagonalization of 19 **2 matrix
Using 32 bit integers
Allocating matrix and vectors 6 kB
Allocating work buffers 4 kB
Diagonalizing..
Eigenvalues sorted ascending: T
Maximum absolute eigenvalue error: 1.665334536937735E-015
Maximum absolute vector element error: 0.548992898178129

and also using '-i8' flag:

miro@opteron.tau.ac.il:~/qch_software/development/svn_dirac/intel_dbg/trunk/utils/.ifort -i8 test_dsyevr.F
-L/opt/intel/mkl/10.0.3.020/lib/em64t -lmkl_lapack -lguide -lpthread -lmkl_intel_ilp64 -lmkl
miro@opteron.tau.ac.il:~/qch_software/development/svn_dirac/intel_dbg/trunk/utils/.a.out
Testing DSYEVR diagonalization of 19 **2 matrix
Using 64 bit integers
Allocating matrix and vectors 6 kB
Allocating work buffers 5 kB
Diagonalizing..
Eigenvalues sorted ascending: T
Maximum absolute eigenvalue error: 1.665334536937735E-015
Maximum absolute vector element error: 0.548992898178129
miro@opteron.tau.ac.il:~/qch_software/development/svn_dirac/intel_dbg/trunk/utils/.

while on another machine [PC linux x86_64] with ifort 9.1/mkl 9.0 we got correct results:

ilias@fe4.dcsc.sdu.dk:~/QCH_Work/qch_progs/dirac/mpi_ifort_optim_test/trunk/utils/.ifort test_dsyevr.F
-L/opt/intel/mkl/9.0_beta/lib/em64t -lmkl_lapack -lguide -lpthread -lmkl
ilias@fe4.dcsc.sdu.dk:~/QCH_Work/qch_progs/dirac/mpi_ifort_optim_test/trunk/utils/.a.out
Testing DSYEVR diagonalization of 19 **2 matrix
Using 32 bit integers
Allocating matrix and vectors 6 kB
Allocating work buffers 10 kB
Diagonalizing..
Eigenvalues sorted ascending: T
Maximum absolute eigenvalue error: 2.498001805406602E-016
Maximum absolute vector element error: 2.672851196151180E-015

and also with the '-i8' option:

ilias@fe4.dcsc.sdu.dk:~/QCH_Work/qch_progs/dirac/mpi_ifort_optim_test/trunk/utils/.ifort -i8 test_dsyevr.F -L/opt/intel/mkl/9.0_beta/lib/em64t -lmkl_lapack -lguide -lpthread -lmkl
ilias@fe4.dcsc.sdu.dk:~/QCH_Work/qch_progs/dirac/mpi_ifort_optim_test/trunk/utils/.a.out
Testing DSYEVR diagonalization of 19 **2 matrix
Using 64 bit integers
Allocating matrix and vectors 6 kB
Allocating work buffers 11 kB
Diagonalizing..
Eigenvalues sorted ascending: T
Maximum absolute eigenvalue error: 2.498001805406602E-016
Maximum absolute vector element error: 2.672851196151180E-015

It looks that there is some bug in the MKL lapack 10.0.3. Any help ? Thanks, Miro.


I wish to add that with the newest MKL release, 10.1.1.019 - download file "l_mkl_p_10.1.1.019.tar.gz" (don't forget to source /opt/intel/mkl/10.0.3.020/tools/environment/mklvarsem64t.sh in your .bashrc file) , I got proper results.

Tested on x86_64 PC/Debian Linux, GNU/gfortran-4.3.

ilias@194.160.135.47:~/programming/fortran/test_dsyerv/.gfortran-4.3 test_dsyevr.F -L/opt/intel/mkl/10.1.1.019/lib/em64t -lmkl_lapack -lguide -lpthread -lmkl
ilias@194.160.135.47:~/programming/fortran/test_dsyerv/.a.out
Testing DSYEVR diagonalization of 19 **2 matrix
Using 32 bit integers
Allocating matrix and vectors 6 kB
Allocating work buffers 4 kB
Diagonalizing..
Eigenvalues sorted ascending: T
Maximum absolute eigenvalue error: 3.05311331771918049E-016
Maximum absolute vector element error: 2.67970466075669598E-015


it also works with the ILP64 data model:
*********************************
ilias@194.160.135.47:~/programming/fortran/test_dsyerv/.gfortran-4.3 -fdefault-integer-8 test_dsyevr.F -L/opt/intel/mkl/10.1.1.019/lib/em64t -lmkl_lapack -lguide -lpthread -lmkl_intel_ilp64 -lmkl
ilias@194.160.135.47:~/programming/fortran/test_dsyerv/.a.out
Testing DSYEVR diagonalization of 19 **2 matrix
Using 64 bit integers
Allocating matrix and vectors 6 kB
Allocating work buffers 5 kB
Diagonalizing..
Eigenvalues sorted ascending: T
Maximum absolute eigenvalue error: 3.05311331771918049E-016
Maximum absolute vector element error: 2.67970466075669598E-015


All the best.
0 Kudos
Reply