[petsc-dev] Bug in MatShift_MPIAIJ ?

Eric Chamberland Eric.Chamberland at giref.ulaval.ca
Thu Oct 8 14:12:55 CDT 2015


I think the same problem is in MatShift_MPIBAIJ.

I mean if I have a processor with no (local) lines at all in a matrix 
(which is my bugging case here), it should not call Mat*SetPreallocation 
at that point...

That sounds ok to you?

thanks,

Eric

On 08/10/15 02:45 PM, Eric Chamberland wrote:
> Ok,
>
> if I comment the following lines (added in 3.6.2), it works:
>
> PetscErrorCode MatShift_MPIAIJ(Mat Y,PetscScalar a)
> {
>    PetscErrorCode ierr;
>    Mat_MPIAIJ     *maij = (Mat_MPIAIJ*)Y->data;
>    Mat_SeqAIJ     *aij = (Mat_SeqAIJ*)maij->A->data;
>
>    PetscFunctionBegin;
>    if (!Y->preallocated) {
>      ierr = MatMPIAIJSetPreallocation(Y,1,NULL,0,NULL);CHKERRQ(ierr);
>    } /*else if (!aij->nz) {
>      ierr = MatSeqAIJSetPreallocation(maij->A,1,NULL);CHKERRQ(ierr);
>    }*/
>    ierr = MatShift_Basic(Y,a);CHKERRQ(ierr);
>    PetscFunctionReturn(0);
> }
>
> Eric
>
> On 08/10/15 09:45 AM, Eric Chamberland wrote:
>> Hi!
>>
>> hint: For petsc 3.6.1, if I apply the patches that Patrick gave (in the
>> head of this thread), it all works correctly,
>>
>> Eric
>>
>> On 07/10/15 10:11 PM, Eric Chamberland wrote:
>>> Hi Jed,
>>>> If I recall correctly, that patch is only checking for incorrect use by
>>>> ensuring that the flags are set collectively.  If your code is correct
>>>> then it doesn't affect you and if your code is incorrect, it will error
>>>> now where as it would behave incorrectly before.  The implementation
>>>> was
>>>> done by changing some enum values, which is why it breaks the ABI.
>>>>
>>>> As Satish says, you can apply the patch and see if your code errors.
>>>>
>>>> If your example is simple, you can send it along so we can debug and
>>>> add
>>>> it to the test suite.
>>>
>>> ok, after applying the patch, the code still error at the same place.
>>>
>>> The fact is that doing the very same MatShift with petsc 3.5.3 was
>>> working correctly...  in fact it is now hanging into one of our test
>>> from our test suite...
>>>
>>> I will have to dig further into this...
>>>
>>> to be continued...
>>>
>>> Eric
>>
>>
>> Hi!




More information about the petsc-dev mailing list