MHeroux at CSBSJU.EDU
Sat Aug 20 11:27:27 EDT 2016
There is nothing in the core capabilities of Trilinos for this kind of operation as far as I know, although there is always new development so someone might chime in with something new.
A few comments:
- This kind of feature has been discussed many times, but the need has never reached the urgency to make it on our list of things to do.
- In iterative solvers, even if the original multivectors start as sparse, subsequent computations fill in the zero values, so for the bulk of Trilinos solvers, sparseness quickly disappears.
- In many cases, using the Inversion of Control capabilities of Trilinos (the ability to define your own matrix operations, in particular) can be used to develop customized code that can exploit sparsity in a way that uses special knowledge of your problem. This might be a good option for your case. You would still have to keep the dense multivector if you want to use intrinsic Trilinos operations, but you could track the nonzeros using metadata and use only those values when executing your custom kernels.
- One other approach: The multivector could be kept as a sparse matrix (CrsMatrix, for example). If you store it as a sparse matrix, you can do the operations you list as sparse-sparse matrix operations. Also, as a sparse matrix, there is also better control over load balancing via sparse matrix partitioning tools.
I hope this helps.
On 8/20/16, 5:09 AM, "Trilinos-Users on behalf of Denis Davydov" <trilinos-users-bounces at trilinos.org on behalf of davydden at gmail.com> wrote:
Dear Trilinos users and developers,
Is there anything under Trilinos umbrella (Tpetra, Thyra, etc) which would
help using SparseMultiVectors? By “Sparse” i mean that each vector is non-zero on some small set of indices.
I would need usual operations like product with sparse matrices, addition, projection of sparse matrices onto
subspace spanned by the multivectors.
Trilinos-Users mailing list
Trilinos-Users at trilinos.org
More information about the Trilinos-Users