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!
链接已复制
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
Singular Value Decomposition: ScaLAPACK Driver Routines
Best Regards,
Shanmukh.SS
Sorry for the delay. This answers my question, but I was also curious as to if/when support may be available for this?
Thanks!
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
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.
Awesome! Thanks!
This would be a great help for anyone doing this analysis. Should I go ahead and close this/accept as solution?