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

largest matrix size by the LAPACKE_dsyevr

Banerjee__Debasish
503 Views

 Hi,

  I am trying to diagonalize a square matrix of size N=73789, with a MKL LAPACKE_dsyevr, and
need to find all the eigenvalues and eigenvectors. The machine I am running on uses
Intel(R) C++ Intel(R) 64 Compiler for applications running on Intel(R) 64, Version 18.0.2.199 Build 20180210
and has 3TB of RAM. The matrix itself occupies ~44 G. The code calls the
  info = LAPACKE_dsyevr( LAPACK_COL_MAJOR, 'V', 'A', 'U', N, A, LDA,
                        vl, vu, il, iu, abstol, &m, W, Z, LDZ, ISUPPZ );
 successfully, and spends about ~6000 minutes in the routine (it multithreads with the available processors),
and the memory requirement is steady.
 However, when it seems it is nearly finished, there is a segmentation fault (core dumped).
 
 Can anyone tell me why this is happening? Or if this is too big a matrix to be used with dsyevr?
 Thanks,

 Debasish

0 Kudos
5 Replies
Gennady_F_Intel
Moderator
503 Views

Hi, Debasish. 

It looks like a issue with syevr. But actually if this is the real issue, then this an unknow issue for MKL 2018 u3. Could you try another routine like syev or syevd? btw, do you use ILP64 API?

Gennady

0 Kudos
Banerjee__Debasish
503 Views

Hi Gennady,

   Thanks for your reply. I don't use ILP64 API.
   I could try using syev or syevd but I am afraid that the memory might explode, since it is well-known
  that the divide-and-conquer requires much more memory than the relatively-robust-representations.
  But I will try this, and if the issue persists, come back.
 
  Debasish

 

0 Kudos
Banerjee__Debasish
503 Views

 Hi,

 I am attaching my code here for the LAPACKE_dsyevr. This fails for NxN matrices with N=80,000, (but works fine for N=40,000).
 It complains of segmentation fault, even though enough memory is available to the routine (I am using a 3TB RAM).
 Could you please spot any bad memory allocation in the code?
I am using Intel MKL 2018.

  Thanks in advance,
  Debasish

0 Kudos
Gennady_F_Intel
Moderator
503 Views

Thanks for the test. Could you please try to use ILP64 and check if the problem will still exist!

0 Kudos
Banerjee__Debasish
503 Views

Hi,
  I can confirm that the issue goes away when compiling and running with -ILP64. I can reach matrices upto ~ NxN with
 N = 8*10^4.

  Thanks for the suggestion,
  Debasish

0 Kudos
Reply