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

Hong hzhang at mcs.anl.gov
Wed Jun 21 18:26:05 CDT 2017


Jed :

>
> Is it better this way or as a fallback when !A->ops->rart?  MatPtAP
> handles other combinations like MAIJ.
>

Do you mean
if ( !A->ops->rart) {
    Mat Rt;
    ierr = MatTranspose(R,MAT_INITIAL_MATRIX,&Rt);CHKERRQ(ierr);
    ierr = MatMatMatMult(R,A,Rt,scall,fill,C);CHKERRQ(ierr);
    ierr = MatDestroy(&Rt);CHKERRQ(ierr);
}
This does NOT work for most matrix formats because we do not have fallbacks
for MatTranspose() and MatMatMult().

Hong

>
> >
> > On Wed, Jun 21, 2017 at 12:53 PM, Barry Smith <bsmith at mcs.anl.gov>
> wrote:
> >
> >>
> >> > On Jun 21, 2017, at 8:00 AM, 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.
> >>
> >>      Yes, when we say AIJ we mean both SeqAIJ and MPIAIJ. The manual
> page
> >> here is wrong, probably because it got copied from MatPtAP page
> >>
> >> >
> >> > 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
> >> >
> >> > <matRARt.cpp>
> >>
> >>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-dev/attachments/20170621/88b88be4/attachment.html>


More information about the petsc-dev mailing list