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