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

dsyevr for large matrices and minimum work sizes

duesler__brad
Beginner
1,111 Views

I'm getting an error when calling dsyevr_ for large matrices (n>=6144) and when using minimally required work sizes (liwork = 10n and lwork = 26n). The error message is: "Intel MKL ERROR: Parameter 12 was incorrect on entry to DSBRDB." This error message seems to occur for any matrix of size greater than or equal to 6144. The error does not occur when using optimal liwork and lwork parameters - so it's not really a big deal. However, I've seen dozens of people post about this error when calling dsyevr indirectly via Anaconda Python scipy library (original call scipy.linalg.eigvalsh), which currently uses minimum work sizes.

I reproduced this issue on Mac OS X and Ubuntu - here is my build of "test.c", which calls fortran function dsyevr on identity matrix of rank 6144:

cc -m64 -I/opt/intel/compilers_and_libraries_2018.1.163/linux/mkl/include     test.c  -Wl,--start-group /opt/intel/compilers_and_libraries_2018.1.163/linux/mkl/lib/intel64/libmkl_intel_lp64.a /opt/intel/compilers_and_libraries_2018.1.163/linux/mkl/lib/intel64/libmkl_sequential.a /opt/intel/compilers_and_libraries_2018.1.163/linux/mkl/lib/intel64/libmkl_core.a -Wl,--end-group -lpthread -lm -ldl -o test

 

the call is dsyevr_("N", "A", "U", ...) with minimum required lwork & liwork... all other parameters follow Intel's generic example for dsyevr_

I was also able to run this code without error on other LAPACK implementations (OpenBLAS).

Any thoughts on what's going on here? Mostly just curious since optimal work sizes solves the problem.

Thank you!

0 Kudos
7 Replies
Gennady_F_Intel
Moderator
1,111 Views

Could you share this test.c with us to quick checking the problem with the latest versions?  we had fixed the similar issue in mkl 2018 

 https://software.intel.com/en-us/articles/intel-math-kernel-library-intel-mkl-2018-bug-fixes-list ; - see MKLD-3350

 

0 Kudos
duesler__brad
Beginner
1,111 Views

Here it is - I've commented out the optimal work parameters (which work),  and replaced with the minimums which returns all zeros and error message "Parameter 12 was incorrect on entry to DSBRDB."

Thank you!

0 Kudos
Gennady_F_Intel
Moderator
1,111 Views

Yes, I have to confirm that the problem exists with MKL 2018 update 1 version too. We will fix the issue into one of the next updates and keep you informed with the status of this fix. Thanks for bringing this topic. 

 

0 Kudos
Gennady_F_Intel
Moderator
1,111 Views

Hello. Could you please check the latest mkl 2018 u3 ( released at the end of May'18) and let us know how this update will work on your side.

0 Kudos
Horta__Danilo
Beginner
1,111 Views

I can confirm that the problem persists.

0 Kudos
Gennady_F_Intel
Moderator
1,111 Views
the fix of the problem available in MKL 2019.0. 
 
here the output of the example you gave us:
 
test_dsyevr.exe
 DSYEVR Example Program Results
lwork: 159744
liwork: 61440
The DSYEBVR algorithm PASSED to compute Eigenvalues.
 
 The total number of eigenvalues found:6144
Major version:           2019
Minor version:           0
Update version:          0
Product status:          Product
Build:                   20180829
Processor optimization:  Intel(R) Advanced Vector Extensions 2 (Intel(R) AVX2) enabled processors
===============================================================
0 Kudos
duesler__brad
Beginner
1,111 Views

Great, thank you!

0 Kudos
Reply