[petsc-users] Kronecker Product

Guglielmo, Tyler Hardy guglielmo2 at llnl.gov
Mon Jan 30 15:23:04 CST 2023


I have an implementation of the slepc MFN matrix exponential which is implicitly using ExpoKit.  You have to supply a matrix into the Slepc MFN operator to set the problem up as far as I know.

Tyler

From: Matthew Knepley <knepley at gmail.com>
Date: Monday, January 30, 2023 at 12:24 PM
To: Guglielmo, Tyler Hardy <guglielmo2 at llnl.gov>
Cc: Barry Smith <bsmith at petsc.dev>, petsc-users at mcs.anl.gov <petsc-users at mcs.anl.gov>
Subject: Re: [petsc-users] Kronecker Product
On Mon, Jan 30, 2023 at 3:08 PM Guglielmo, Tyler Hardy via petsc-users <petsc-users at mcs.anl.gov<mailto:petsc-users at mcs.anl.gov>> wrote:
I would need the Kronecker product to be explicitly available to perform matrix exponentials.  A and B are of order 5000, so not too large.  I will give storing them on all ranks a shot.  Thanks for the tips!

Were you going to do exponentials by explicit factorization? For large matrices, I thought it was common to
use matrix-free methods (https://slepc.upv.es/documentation/current/docs/manualpages/MFN/index.html<https://urldefense.us/v3/__https:/slepc.upv.es/documentation/current/docs/manualpages/MFN/index.html__;!!G2kpM7uM-TzIFchu!nSXMSWur4Lrpt0oF_bjtBae92VccTBcCHUQJRYWByuB4bZ5HHzFHhGtLjs7NrgHZUCE$>)

  Thanks,

    Matt


Best,
Tyler

From: Barry Smith <bsmith at petsc.dev<mailto:bsmith at petsc.dev>>
Date: Monday, January 30, 2023 at 12:01 PM
To: Guglielmo, Tyler Hardy <guglielmo2 at llnl.gov<mailto:guglielmo2 at llnl.gov>>
Cc: petsc-users at mcs.anl.gov<mailto:petsc-users at mcs.anl.gov> <petsc-users at mcs.anl.gov<mailto:petsc-users at mcs.anl.gov>>
Subject: Re: [petsc-users] Kronecker Product

  What is large? If A and B have dimensions of 1000, then the Kronecker product is of size 1,000,000. Do you want the Kronecker product to be explicitly formed or just available as matrix vector products?  If just explicitly available then I think you can just store sparse A (for example) completely on all ranks, 10,000 by 10,000 sparse matrix is small for sequential) while B is distributed.

Barry


On Jan 30, 2023, at 2:48 PM, Guglielmo, Tyler Hardy <guglielmo2 at llnl.gov<mailto:guglielmo2 at llnl.gov>> wrote:

Both matrices (A and B) would be approximately the same size and large.  The use case (for me at least) is to create several large sparse matrices which will be combined in various ways through Kronecker products.  The combination happens at every time step in an evolution, so it really needs to be fast as well.  I’m thinking mpi/petsc is probably not the most optimal way for dealing with this, and might just have to work with single node multi-threading.

Best,
Tyler

From: Matthew Knepley <knepley at gmail.com<mailto:knepley at gmail.com>>
Date: Monday, January 30, 2023 at 11:31 AM
To: Guglielmo, Tyler Hardy <guglielmo2 at llnl.gov<mailto:guglielmo2 at llnl.gov>>
Cc: Barry Smith <bsmith at petsc.dev<mailto:bsmith at petsc.dev>>, petsc-users at mcs.anl.gov<mailto:petsc-users at mcs.anl.gov> <petsc-users at mcs.anl.gov<mailto:petsc-users at mcs.anl.gov>>
Subject: Re: [petsc-users] Kronecker Product
On Mon, Jan 30, 2023 at 2:24 PM Guglielmo, Tyler Hardy via petsc-users <petsc-users at mcs.anl.gov<mailto:petsc-users at mcs.anl.gov>> wrote:
Thanks Barry,

I saw that function, but wasn’t sure how to apply it since the documentation says that S and T are dense matrices, but in my case all matrices involved are sparse.  Is there a way to work around the dense requirement?

We don't have parallel sparse-sparse. It would not be too hard to write, but it would be some work.

It is hard to understand the use case. Is one matrix much smaller? If not, and you inherit the distribution from A, it seems
like it might be very suboptimal, and otherwise you would have to redistribute on the fly and it would get very complicated.

  Thanks,

     Matt

Best,
Tyler

From: Barry Smith <bsmith at petsc.dev<mailto:bsmith at petsc.dev>>
Date: Monday, January 30, 2023 at 11:12 AM
To: Guglielmo, Tyler Hardy <guglielmo2 at llnl.gov<mailto:guglielmo2 at llnl.gov>>
Cc: petsc-users at mcs.anl.gov<mailto:petsc-users at mcs.anl.gov> <petsc-users at mcs.anl.gov<mailto:petsc-users at mcs.anl.gov>>
Subject: Re: [petsc-users] Kronecker Product

   Do you need the explicit sparse representation of the Kronecker product? Or do you want to apply it as an operator or solve systems with it? If the latter you can use https://petsc.org/release/docs/manualpages/Mat/MatCreateKAIJ/#matcreatekaij<https://urldefense.us/v3/__https:/petsc.org/release/docs/manualpages/Mat/MatCreateKAIJ/*matcreatekaij__;Iw!!G2kpM7uM-TzIFchu!lSQ9WFlYi6PMdfs3WAfEq4ydgCLZtfDgyFy9PjdLNTisCsHtwmVuukcpIv1J0i1EtiQ$>

  Barry



On Jan 30, 2023, at 12:53 PM, Guglielmo, Tyler Hardy via petsc-users <petsc-users at mcs.anl.gov<mailto:petsc-users at mcs.anl.gov>> wrote:

Hi all,

I am wondering if there is any functionality for taking Kronecker products of large sparse matrices that are parallel?  MatSeqAIJKron is as close as I have found, but it seems like this does not work for parallel matrices.  Any ideas here?

An option could be to make A and B sequential, compute the Kronecker product, C, then scatter C into a parallel matrix?  This seems like a horribly inefficient procedure.  I’m still fairly new to petsc, so thanks for patience :)!

Best,
Tyler

+++++++++++++++++++++++++++++
Tyler Guglielmo
Postdoctoral Researcher
Lawrence Livermore National Lab
Office: 925-423-6186
Cell: 210-480-8000
+++++++++++++++++++++++++++++



--
What most experimenters take for granted before they begin their experiments is infinitely more interesting than any results to which their experiments lead.
-- Norbert Wiener

https://www.cse.buffalo.edu/~knepley/<https://urldefense.us/v3/__http:/www.cse.buffalo.edu/*knepley/__;fg!!G2kpM7uM-TzIFchu!nK03nUENfNtHoOs8RWmJWJQYJH2IlC_lYQPNn7kV9FsBv2CQKR_VSqbLGRLFShVpKmY$>



--
What most experimenters take for granted before they begin their experiments is infinitely more interesting than any results to which their experiments lead.
-- Norbert Wiener

https://www.cse.buffalo.edu/~knepley/<https://urldefense.us/v3/__http:/www.cse.buffalo.edu/*knepley/__;fg!!G2kpM7uM-TzIFchu!nSXMSWur4Lrpt0oF_bjtBae92VccTBcCHUQJRYWByuB4bZ5HHzFHhGtLjs7NCuV_8ZE$>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20230130/d1fed22a/attachment-0001.html>


More information about the petsc-users mailing list