MPIDense row distribution on transpose.
Barry Smith
bsmith at mcs.anl.gov
Mon Sep 8 14:01:22 CDT 2008
Alex,
This is really a bug, we should consistently using use the
transpose of the given
values (I guess).
I have pushed a fix for petsc-dev. You can fix your copy of
petsc-2.3.3 by
simply sticking in the code you indicated from MatTranspose_MPIAIJ()
Barry
On Sep 4, 2008, at 10:06 PM, Alex Peyser wrote:
> All,
>
> In petsc-2.3.3_p11, when I do a transpose on an MPIAIJ, the
> MatTranspose
> conserves the row distribution pattern of the parent, so a 5x5 matrix
> transposed can still be multiplied by a 5-vector that the parent
> could be
> multiplied by (0-1,2-4 for everyone). However, with an MPIDENSE, I
> get a row
> rearrangement so that mpi process 1,2 now have (0-2, 3-4), which
> leads to
> nonconforming object size errors.
>
> Is this a known bug in MPIDense ? Is there a workaround - some way
> to force
> the matrix arrangement on tranpose for an MPIDense?
>
> I see that in MatTranspose_MPIAIJ, MatSetSizes is called
> with (A->cmap.n, A->rmap.n, N, M), which conserves my layout,
> while in MatTranspose_MPIDense, MatSetSizes is called
> with (PETSC_DECIDE, PETSC_DECIDE, N, M), which then ruins my layout.
> The
> former would appear to me the correct sequence.
>
> Regards,
> Alex Peyser
More information about the petsc-dev
mailing list