<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">Jed :</div><div class="gmail_quote">New implementation for seqaij is in branch hzhang/opt-mattransposematmult.</div><div class="gmail_quote">petsc/src/mat/examples/tests/ex209.c is a test.</div><div class="gmail_quote">Please give it a try and let me know if you have any comment.</div><div class="gmail_quote"><br></div><div class="gmail_quote">I'll remove previous implementation and optimize MatTransposeMatMult() for mpiaij matrices.</div><div class="gmail_quote"><br></div><div class="gmail_quote">Hong</div><div class="gmail_quote"><br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><span class="gmail-">Hong <<a href="mailto:hzhang@mcs.anl.gov">hzhang@mcs.anl.gov</a>> writes:<br>
<br>
> It was implemented a decade ago for small to medium matrices.<br>
> Your matrix structure reveals the worst part of outer product.<br>
><br>
> After discussing it with Barry, we decided to replace the algorithm (not<br>
> API) using At=A^T and C=At*B for sequential implementation.<br>
> In parallel, I'll do local MatTranspose (used for PtAP).<br>
> I'll give you this new implementation in few days.<br>
<br>
</span>Perfect, thanks!<br>
</blockquote></div><br></div></div>