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