MPIDense row distribution on transpose.

Barry Smith bsmith at mcs.anl.gov
Mon Sep 8 14:48:41 CDT 2008


    include/petscversion.h

On Sep 8, 2008, at 2:46 PM, Alexander Peyser wrote:

> Thanks,
>
> I copied the dense matrix compose and fixed that line for my code -  
> works well
> with my tests.
>
> Is there a version number macro defined in petsc? Some kind of
> #define PETSC_VERSION xx.yy.zzz
> ?
>
> Thanks,
> Alex Peyser
>
> On Monday 08 September 2008 15:01:22 Barry Smith wrote:
>>   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