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

Intel MKL FEAST

kumar__aman
Beginner
1,214 Views

Hi

I am using feast extremel eigenvalue solver (dexample_extremal_ev_c1.c). for finding lowest eigenvalues. My matrix size is big 1 million cross 1 million. There are around 31 non zero values in each row.  I can find lower 300 eigenvalues easily, but when I try to find 310 lower eigenvalues(meaning 10 more), my code got just crashed down and shows an error.

mkl_sparse_d_ev output info 2
Routine mkl_sparse_d_ev returns code of ERROR: 2Time taken: 19.06s

Please help me regarding this.

 

0 Kudos
14 Replies
Gennady_F_Intel
Moderator
1,214 Views

which version of mkl did you try?

0 Kudos
kumar__aman
Beginner
1,214 Views

hi

I am using the newly released updated version (MKL 2019 Beta release).

I am clearly sure it's not the memory issue in my problem.

 

0 Kudos
Gennady_F_Intel
Moderator
1,214 Views

Kumar, the newest version is MKL 2019 which we released at the end of August this year. Could you try this?  In the case if you will see the problem exists again, could you give us the reproducer?

0 Kudos
kumar__aman
Beginner
1,214 Views

Hi

Can you tell me the source of error in the code i sent earlier.

mkl_sparse_d_ev output info 2
Routine mkl_sparse_d_ev returns code of ERROR: 2

0 Kudos
Gennady_F_Intel
Moderator
1,214 Views

Hi.

The problem is reproduced on our side with the latest version of mkl. We escalated the problem and will update this thread in the case of some news. 

0 Kudos
kumar__aman
Beginner
1,214 Views

Hi

I installed the newest version MKL 2019. Here I have attached my code where my matric size is nearly 16milion with 16*37 million non zero matrix elements. I am trying to find 60 lowest eigenvalues. I am still getting the same error.

mkl_sparse_d_ev output info 2
Routine mkl_sparse_d_ev returns code of ERROR: 2

But I can evaluate 50 eigenvalues easily. 

In my main.c code, I am generating the non zero matrix elements and in the end converting them to coordinate form. I provided the variable eigen_req as how many lowest eigenvalue I am seeking to find.

Please change the extension of compile.c, to compile.sh, where I am compiling the code using  Intel MKL Library. 

Please tell me if you do not understand something in my code.

Thanks.

0 Kudos
kumar__aman
Beginner
1,214 Views

Hi

This time I installed the latest version of intel MKL2019 update3

Still the problem persists while evaluating eigenvalue of large matrix.

mkl_sparse_d_ev output info 2
Routine mkl_sparse_d_ev returns code of ERROR: 2

I do get this error.

0 Kudos
Gennady_F_Intel
Moderator
1,214 Views

That's correct. The problem is targeting to be fixed the next update. this thread will be updated accordingly as soon as this update will be released.

0 Kudos
kumar__aman
Beginner
1,214 Views

Thanks for reply.

Can you tell me which algorithm is used for solving "k lowest/Highest mode" in this subroutine  "mkl_sparse_d_ev(&which, pm, A, descr, k0, &k, E, X, res)".  As FEAST eigensolver solves linear equations exactly and it requires to store the factorization and it would be very tough for me to use the FEAST eigensolver for higher than "2^18*2^18" matrix.

But I am able to evaluate a significant number of lowest or highest eigenvalues using "mkl_sparse_d_ev" subroutine..

So I do suspect you guys might be using (IFEAST) Inexact version of FEAST.  Please correct me about which algorithm intel uses for this subroutine.

0 Kudos
Gennady_F_Intel
Moderator
1,214 Views

the fix of the problem available in mkl 2019 u4. Please check and let us know if the problem still exist on your side.

0 Kudos
kumar__aman
Beginner
1,214 Views

The problem still exists.

When i try to evaluate K lowest/highest modes. After some particular value of K, say 50 for a matrix size 16million, I am not able able to evaluate and i get the error.

mkl_sparse_d_ev output info 2
Routine mkl_sparse_d_ev returns code of ERROR: 2

This error is escalated in this subroutine "mkl_sparse_d_ev(&which, pm, A, descr, k0, &k, E, X, res)"

Similarly for While evaluating inbetween eigenvalue for a matrix size (2^20 cross 2^20) , I can not evaluate and gets this error.

Intel MKL Extended Eigensolvers ERROR: Problem from Inner Linear System Solver
==>INFO code =: -2

This error is escalated in this subroutine "dfeast_scsrev ()";

0 Kudos
MariaZh
Employee
1,214 Views

Hi,
Did you consider switching to ilp64 interface?
I believe, your problem may be to big for lp64 which leads to an error.

Best regards,
Maria

0 Kudos
kumar__aman
Beginner
1,214 Views

Hi Maria

Thanks for this suggestion, I did not knew about this ILP64.  And now my problem is solved by using this interface. I really appreciate your help. Can you tell me what algorithm does intel use for evaluating K lowest/Highest modes in this subroutin  mkl_sparse_d_ev(&which, pm, A, descr, k0, &k, E, X, res). I do suspect intel does use Inexact version "IFEAST", because in FEAST algo does solve linear equations exactly and that task is very costly in ram and number of operation too.

Thanks.

0 Kudos
MariaZh
Employee
1,214 Views

Hi,
I'm glad that you problem has been resolved!

As for the algorithm question, please refer to the pm parameter description here (https://software.intel.com/en-us/mkl-developer-reference-c-extended-eigensolver-input-parameters-for-extremal-eigenvalue-problem):

pm[2] -- Specifies the algorithm to use:

0 - Decided at runtime
1 - Kryolov Schur method
2 - Subspace Iteration technique based on FEAST algorithm

Best regards,
Maria

0 Kudos
Reply