The matrix can be a shell matrix, only the matrix-vector product operation is required.
Jose > El 30 ene 2023, a las 22:23, Guglielmo, Tyler Hardy via petsc-users > <petsc-users@mcs.anl.gov> escribió: > > 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 <knep...@gmail.com> > Date: Monday, January 30, 2023 at 12:24 PM > To: Guglielmo, Tyler Hardy <gugliel...@llnl.gov> > Cc: Barry Smith <bsm...@petsc.dev>, petsc-users@mcs.anl.gov > <petsc-users@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@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) > > Thanks, > > Matt > > > Best, > Tyler > > From: Barry Smith <bsm...@petsc.dev> > Date: Monday, January 30, 2023 at 12:01 PM > To: Guglielmo, Tyler Hardy <gugliel...@llnl.gov> > Cc: petsc-users@mcs.anl.gov <petsc-users@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 <gugliel...@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 <knep...@gmail.com> > Date: Monday, January 30, 2023 at 11:31 AM > To: Guglielmo, Tyler Hardy <gugliel...@llnl.gov> > Cc: Barry Smith <bsm...@petsc.dev>, petsc-users@mcs.anl.gov > <petsc-users@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@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 <bsm...@petsc.dev> > Date: Monday, January 30, 2023 at 11:12 AM > To: Guglielmo, Tyler Hardy <gugliel...@llnl.gov> > Cc: petsc-users@mcs.anl.gov <petsc-users@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 > > Barry > > > > > > On Jan 30, 2023, at 12:53 PM, Guglielmo, Tyler Hardy via petsc-users > <petsc-users@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/ > > > > -- > 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/