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?
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 https://software.intel.com/en-us/articles/intel-mkl-link-line-advisor ) helpful.