cyclops-community / ctf

Cyclops Tensor Framework: parallel arithmetic on multidimensional arrays
Other
194 stars 53 forks source link

Support for SVD or HOSVD? #41

Closed TensorNetwork18 closed 6 years ago

TensorNetwork18 commented 6 years ago

Has CTF implemented SVD or Higher-Order SVD method for either dense or sparse tensor ?

solomonik commented 6 years ago

Eric Song (@elsong2) is working on this, see for instance,

https://github.com/elsong2/ctf/commit/6f66a6d018fd47d501f49194d5beefc81e76d69e

Support for at least the matrix SVD function above is one of the targets for the next release.

Eric's HOSVD code is here, but I think not yet fully functional, https://github.com/elsong2/Tensor-Decomposition/blob/master/hosvd.cxx

There is existing support for converting a matrix to ScaLAPACK format, which Eric's code is leveraging, so in effect CTF has the infrastructure to implement HOSVD easily, and will soon have a function to do it explicitly. But interoperability with ScaLAPACK will likely remain the main method for doing a mix of linear algebra solvers/factorizations and tensor contractions for some time. That should be enough to develop many tensor decompositions, but we would be happy to learn about any helpful features that could be added.

TensorNetwork18 commented 6 years ago

Great! I think this can be a very useful feature, particularly, for the study of tensor network states or renormalization group calculations in quantum many-body systems. Thanks for your reply!