Intel® oneAPI Math Kernel Library
Ask questions and share information with other developers who use Intel® Math Kernel Library.
Announcements
FPGA community forums and blogs on community.intel.com are migrating to the new Altera Community and are read-only. For urgent support needs during this transition, please visit the FPGA Design Resources page or contact an Altera Authorized Distributor.
7234 Discussions

lapack routine "dsyevr" in MKL 10.0.3 vs 9.0

miro_ilias
Beginner
566 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
566 Views

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

Gennady

0 Kudos
miro_ilias
Beginner
566 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