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

MKL Sparse SVD (Complex Number Support)

Skyman
Beginner
2,573 Views

Hello,

 

I am attempting trying to take an SVD of a large sparse matrix (10s of Terabytes if stored fully) in Fortran (and potentially parallelize with QR decomposition which I have done for regular sized matrices). However, this matrix is also complex which is currently not supported. I have naively tried adding an mkl_sparse_c_svd function to the mkl_solvers_ee.f90 in hopes that it would work to no success.

 

Is there a viable way to solve this issue/problem with MKL libraries? Am I missing something or making a mistake in how I think this should be implemented?

 

Thanks for any help!

0 Kudos
9 Replies
ShanmukhS_Intel
Moderator
2,533 Views

Hi,


Thanks you for posting on Intel Communities.


>> However, this matrix is also complex which is currently not supported. 

Yes, It was designed to solve problems with the real spectrum only. Complex data types are not supported.


>> Is there a viable way to solve this issue/problem with MKL libraries? Am I missing something or making a mistake in how I think this should be implemented?


We would like to inform you, the only way is using Lapack Computational Routines, However it will take a huge RAM size on SMP systems and the system could not be solved into OOC mode unfortunately. Might be the Scalapack SVD will help in that case. Please find the below links regarding,


Singular Value Decomposition: LAPACK Computational Routines 

https://www.intel.com/content/www/us/en/develop/documentation/onemkl-developer-reference-c/top/lapack-routines/lapack-least-squares-and-eigenvalue-problem/lapack-least-square-eigenvalue-problem-computation/singular-value-decomposition-lapack-computation.html#singular-value-decomposition-lapack-computation


Singular Value Decomposition: ScaLAPACK Driver Routines

https://www.intel.com/content/www/us/en/develop/documentation/onemkl-developer-reference-c/top/scalapack-routines/scalapack-computational-routines/singular-value-decomposition-scalapack-driver.html


Best Regards,

Shanmukh.SS



0 Kudos
ShanmukhS_Intel
Moderator
2,509 Views

Hi,


Reminder:

Has the information provided helped? Is your issue resolved? Could you please let us know if we could close this thread at our end.


Best Regards,

Shanmukh.SS


0 Kudos
Skyman
Beginner
2,477 Views

Sorry for the delay. This answers my question, but I was also curious as to if/when support may be available for this?

 

Thanks!

0 Kudos
ShanmukhS_Intel
Moderator
2,411 Views

Hi,

 

Could you please let us know the requirement of your application, as in why would you require complex numbers support?

 

We would also request you to elaborate the details so that we could look into further with respect to details provided.

 

Best Regards,

Shanmukh.SS

 

0 Kudos
Skyman
Beginner
2,372 Views

I am in computational fluid dynamics and am trying to do a resolvent analysis on 2D grids.

 

The resolvent operator is complex in nature and is also very large since it involves creating a sparse coefficient matrix for each variable for each of the Navier-Stokes equations.

 

I have seen much more computationally complicated methods used to deal with this problem (memory requirements etc.). However, it seems like this library has the potential to solve this issue fairly easily and make parallelization much less complicated.

 

 

0 Kudos
ShanmukhS_Intel
Moderator
2,321 Views

Hi,


Thanks for sharing your requirement details. We will get back to you soon with an update.


Best Regards,

Shanmukh.SS


0 Kudos
Khang_N_Intel
Employee
2,307 Views

Hi,


We will submit this feature request to the mkl team. However, there is no warranty that this feature would be implemented. If it does, we will let you know.


Best regards,

Khang


0 Kudos
Skyman
Beginner
2,295 Views

Awesome! Thanks!

 

This would be a great help for anyone doing this analysis. Should I go ahead and close this/accept as solution?

0 Kudos
Khang_N_Intel
Employee
2,243 Views

Hi,


Please don't do it yet. Let's wait until we know whether the feature will be implemented or not.


Best regards,

Khang


0 Kudos
Reply