Intel® oneAPI Math Kernel Library
Ask questions and share information with other developers who use Intel® Math Kernel Library.
Announcements
The Intel sign-in experience is changing in February to support enhanced security controls. If you sign in, click here for more information.
6680 Discussions

MKL Sparse SVD (Complex Number Support)

Skyman
Beginner
699 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
659 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/lapac...


Singular Value Decomposition: ScaLAPACK Driver Routines

https://www.intel.com/content/www/us/en/develop/documentation/onemkl-developer-reference-c/top/scala...


Best Regards,

Shanmukh.SS



ShanmukhS_Intel
Moderator
635 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


Skyman
Beginner
603 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!

ShanmukhS_Intel
Moderator
537 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

 

Skyman
Beginner
498 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.

 

 

ShanmukhS_Intel
Moderator
447 Views

Hi,


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


Best Regards,

Shanmukh.SS


Khang_N_Intel
Employee
433 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


Skyman
Beginner
421 Views

Awesome! Thanks!

 

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

Khang_N_Intel
Employee
369 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


Reply