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

What is the largest matrix that can be handled through LAPACK in mkl_lp64?



I am having troubles with diagonalizing a symmetric matrix of size 40,000 x 40,000. Just storing the unique elements already exceeds the largest integer we can store with 32-bit. However, it does not exceed the limit of 64-bit integer.

I thought with LAPACK through mkl_lp64 I should be able to diagonalize this but it crashed with an error:

Intel MKL ERROR: Parameter 8 was incorrect on entry to DSYEVD.

The parameter 8 is lwork and it is above the maximum 32-bit integer. 

Is it the case that even with mkl_lp64 I cannot use LAPACK to diagonalize matrices of size 40,000 x40,000?

Should I be using mkl_ilp64?

Thank you!

0 Kudos
1 Reply
Black Belt

To call any MKL routine with the LP64 protocol, all actual arguments of type INTEGER must be 32-bit integers. If you need to pass integer arguments that need to be 64-bit integers, all integer arguments to MKL routines have to be 64-bit, as well, and you should use the ILP64 protocol.

You may find the MKL link line advisor ( at ) helpful.

0 Kudos