[petsc-users] How to compute RARt with A and R as distributed (MPI) matrices ?

Hong hzhang at mcs.anl.gov
Wed Jun 21 11:52:28 CDT 2017


Jed :

> It is only implemented for SeqAIJ, but it should arguably have a default
> implementation that performs an explicit transpose and then calls
> MatMatMatMult or MatPtAP.
>

We can implement
P= R^T (we have this for mpi matrices, expensive though)
C = R*A*P
Hong


> Franck Houssen <franck.houssen at inria.fr> writes:
>
> > I read the doc, and googled this before to write a dummy example. So,
> matRARt is only for sequential matrices, and, matPtAP for distributed ones
> : correct ? (means, I "just" used the "wrong" method)
> > If so, this is a major difference which does not seem (to me) to be
> emphasized enough in the doc, in particular for a new user (the matRARt and
> matPtAP pages are the same with R replaced with Pt). Where was it possible
> to find this information ?
> >
> > Franck
> >
> > ----- Mail original -----
> >
> >> De: "Dave May" <dave.mayhem23 at gmail.com>
> >> À: "Franck Houssen" <franck.houssen at inria.fr>, "PETSc users list"
> >> <petsc-users at mcs.anl.gov>, "petsc-dev" <petsc-dev at mcs.anl.gov>
> >> Envoyé: Mercredi 21 Juin 2017 15:11:27
> >> Objet: Re: [petsc-users] How to compute RARt with A and R as distributed
> >> (MPI) matrices ?
> >
> >> You can assemble R^t and then use MatPtAP which supports MPIAIJ
> >
> >> On Wed, 21 Jun 2017 at 15:00, Franck Houssen < franck.houssen at inria.fr
> >
> >> wrote:
> >
> >> > How to compute RARt with A and R as distributed (MPI) matrices ?
> >>
> >
> >> > This works with sequential matrices.
> >>
> >> > The doc say "currently only implemented for pairs of AIJ matrices and
> >> > classes
> >> > which inherit from AIJ": I supposed that MPIAIJ was someway
> inheriting from
> >> > AIJ, seems that it doesn't.
> >>
> >
> >> > Is this kind of matrix product possible with distributed matrices in
> PETSc
> >> > ?
> >> > Or is this a known limitation ?
> >>
> >> > Do I go the wrong way to do that (= should use another method) ? If
> yes,
> >> > what
> >> > is the correct one ?
> >>
> >
> >> > Franck
> >>
> >
> >> > PS: running debian/testing + gcc-6.3 + bitbucket petsc.
> >>
> >
> >> > >> mpirun -n 2 matRARt.exe seq
> >>
> >> > Mat Object: 1 MPI processes
> >>
> >> > type: seqaij
> >>
> >> > row 0: (0, 1.) (1, 0.)
> >>
> >> > row 1: (0, 0.) (1, 1.)
> >>
> >
> >> > >> mpirun -n 2 matRARt.exe mpi
> >>
> >> > [0]PETSC ERROR: --------------------- Error Message
> >> > --------------------------------------------------------------
> >>
> >> > [0]PETSC ERROR: No support for this operation for this object type
> >>
> >> > [0]PETSC ERROR: Matrix of type <mpiaij> does not support RARt
> >>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20170621/b1bf3977/attachment.html>


More information about the petsc-users mailing list