[petsc-dev] MatTransposeMatMult

Jed Brown jed at jedbrown.org
Thu Sep 21 11:52:04 CDT 2017

Hong <hzhang at mcs.anl.gov> writes:

> Jed,
> I reproduced what you observed.
> 30x time is spent on numerical C = At*B.
> We compute A^T*B using outer product C=(A^T)[:,i]*B[i,:].
> For your large matrix A: rows=574902, cols=184446,
> outer product takes long long time to insert values to C.
> We may use At=A^T and C=At*B instead.

Right.  My point is that users call MatTransposeMatMult and conclude
that PETSc is super slow compared to other software.  The could call
MatTranspose then MatMatMult and get fast results, but that's a sucky
and confusing interface.  Is there a compelling reason to keep the outer
product implementation around?  Are there any matrices for which it is

More information about the petsc-dev mailing list