[petsc-dev] MatMatMult gives different results

Hong Zhang hzhang at mcs.anl.gov
Tue Feb 7 11:17:30 CST 2012


Alexander :

>
>>   MatCreateMPIAIJ(PETSC_COMM_WORLD, PETSC_DECIDE, PETSC_DECIDE, N, M, 12,
>> PETSC_NULL, 12, PETSC_NULL, &AT);
>>   MatTranspose(A,MAT_IGNORE_MATRIX,&AT);
>>
>
>  should be replaced with
> MatTranspose(A,MAT_INITIAL_MATRIX,&AT);
>
> Hm, it seems this was the reason...
>

With this change, do you still get different matrix product comparing with
Matlab's?
I'll add an error flag in petsc to prevent using
 MatTranspose(A,MAT_IGNORE_MATRIX,&AT).

>
>  Do you mean 'Cm = A'*B;'?
> 'Cm = A.'*B;' gives component-wise matrix product, not matrix product.
>
>
> .' operator means non-Hermitian transpose. That is what I get with
> MatTranspose (in contrast with MatHermitianTranspose)
> component-wise matrix product would be .*
>
You are correct.

Hong

>
>
>
>  Hong
>
>
>
>>  C = PetscBinaryRead('C.dat','complex',true);
>>
>> Matrix C is different depending on number of cores I use.
>> My PETSc is:
>> Using Petsc Development HG revision:
>> 876c894d95f4fa6561d0a91310ca914592527960  HG Date: Tue Jan 10 19:27:14 2012
>> +0100
>>
>>
>> On 06.02.2012 17:13, Hong Zhang wrote:
>>
>> MatMatMult() in petsc is not well-tested for complex - could be buggy.
>> Can you send us the matrices A and B in petsc binary format for
>> investigation?
>>
>>  Hong
>>
>> On Mon, Feb 6, 2012 at 5:55 AM, Alexander Grayver <
>> agrayver at gfz-potsdam.de> wrote:
>>
>>> Dear PETSc team,
>>>
>>> I try to use:
>>> call
>>> MatMatMult(A,B,MAT_INITIAL_MATRIX,PETSC_DEFAULT_DOUBLE_PRECISION,C,ierr);CHKERRQ(ierr)
>>>
>>> Where both A and B are rectangular, but A is sparse and B is dense. Both
>>> are double complex and distributed.
>>> The product PETSc gives me contains some errors in some part of the
>>> matrix.
>>> I output A, B and C then computed product in matlab.
>>>
>>> Attached you see figure plotted as:
>>> imagesc(log10(abs(C-Cm)))
>>>
>>> Where Cm -- product computed in matlab.
>>>
>>> The pattern and amplitude vary depending on the number of cores I use.
>>> This picture is obtained for 48 cores (I've tried 12, 64 cores as well).
>>>
>>> Where should I look for possible explanation?
>>>
>>> --
>>> Regards,
>>> Alexander
>>>
>>
>>
>>
>>   --
>> Regards,
>> Alexander
>>
>>
>
>
> --
> Regards,
> Alexander
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-dev/attachments/20120207/be33bf95/attachment.html>


More information about the petsc-dev mailing list