# [petsc-users] MatMatMult with dense matrices.

James A Charles charlesj at purdue.edu
Tue Apr 7 13:58:35 CDT 2015

```Hello,

Thanks a lot for looking into this. I'm still working on debugging this on our side. It might be an issue with us. I will keep you updated.

Thanks,
James

----- Original Message -----
From: "Hong" <hzhang at mcs.anl.gov>
To: "Barry Smith" <bsmith at mcs.anl.gov>
Cc: "James A Charles" <charlesj at purdue.edu>, "Hong" <hzhang at mcs.anl.gov>, dlemus at purdue.edu, "PETSc users list" <petsc-users at mcs.anl.gov>, "Daniel Mejia" <denphi at denphi.com>, "Tillmann Kubis" <tkubis at purdue.edu>
Sent: Sunday, April 5, 2015 6:13:42 PM
Subject: Re: [petsc-users] MatMatMult with dense matrices.

James,

My understanding is that
you call MatMatMult in sequential for computing C = A*B, in which
A is in aij format, and B is dense, and the product C is dense, but gives different values than what you got from Matlab.

Do you have a stand-alone petsc code to reproduce this so I can investigate what goes wrong?

Hong

On Sun, Apr 5, 2015 at 3:44 PM, Barry Smith < bsmith at mcs.anl.gov > wrote:

We would need to see the PETSc side of the code to see if there is anything wrong there.

> On Apr 5, 2015, at 3:35 PM, James A Charles < charlesj at purdue.edu > wrote:
>
> Hi Hong,
>
> You can open up matmatmult_comparison.mat in MATLAB ( load matmatmult_comparison.mat ). That .mat contains A, B, C, and C_MATLAB. I called matmatmult in sequential. We use AIJ when A2 was sparse but at the time of this multiplication everything was dense.
>
> Thanks,
> James
>
>
> ----- Original Message -----
> From: "Hong" < hzhang at mcs.anl.gov >
> To: "James A Charles" < charlesj at purdue.edu >
> Cc: "PETSc users list" < petsc-users at mcs.anl.gov >, dlemus at purdue.edu , "Daniel Mejia" < denphi at denphi.com >, "Tillmann Kubis" < tkubis at purdue.edu >
> Sent: Sunday, April 5, 2015 4:25:39 PM
> Subject: Re: [petsc-users] MatMatMult with dense matrices.
>
>
>
>
> James:
>
>
> I'm multiplying two dense matrices. I compared the results against MATLAB and I am getting different results. Attached you will see a zip that contains a .mat file that has the A, B, and C. C_MATLAB is the multiplication of A*B in MATLAB and C is the PETSc 3.4.3 result. I also attached the .m files A, B, and C that were saved from PETSc. Is there something I'm doing wrong or
>
>
> What is the file type of matmatmult_comparison.mat?
> I need to see how it defers from C.m.
>
>
>
> any reason due to the shape of the matrices that this would fail? If it gives any more information we convert the previous matrix that A is formed of A2 (A = A1*A2) to dense prior to the multiplication using MatConvert.
>
>
>
> It seems both A and B are dense, complex square matrices.
> Did you call MatMatMult() in sequential or parallel? What matrix format did you use?
>
>
> Hong

```