Community
cancel
Showing results for 
Search instead for 
Did you mean: 
duesler__brad
Beginner
344 Views

dsyevr for large matrices and minimum work sizes

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
344 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

 

duesler__brad
Beginner
344 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!

Gennady_F_Intel
Moderator
344 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. 

 

Gennady_F_Intel
Moderator
344 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.

Horta__Danilo
Beginner
344 Views

I can confirm that the problem persists.

Gennady_F_Intel
Moderator
344 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
===============================================================
duesler__brad
Beginner
344 Views

Great, thank you!

Reply