John:<br><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="im"><br>
> Can you test MatRARt on<br>
> petsc-3.3/src/mat/examples/tests/ex94 with attached matrix data file by<br>
><br>
> ./ex94 -f0 medium -f1 medium<br>
><br>
> Do it crash?<br>
<br>
</div>Yes, it does crash in the same exact fashion as the code I sent.  This<br>
is 3.3-p2.  petsc-dev also crashes, but I haven't pulled changes in<br>
about a month (and the server is down right now).<br></blockquote><div> </div><div>Hmm, ex94 runs well on my tests.</div><div>May I have your ~petsc/configure.log?</div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

<div class="im"><br>
> From flops analysis and experiments, MatRARt() is not as efficient as<br>
> MatPtAP,<br>
> likely costs twice as MatPtAP.<br>
<br>
</div>I can just as easily construct P, so this isn't a big deal.  How would<br>
MatPtAP compare to a hypothetical MatRAP?  Is there a reason this<br>
routine doesn't exist?<br></blockquote><div><br></div><div>Using petsc aij matrix format, sparse inner-product used in </div><div>A*Rt (MatMatTransposeMult)</div><div>costs twice as A*P (MatMatMult). </div><div>Out-product used in Pt*A (MatTransposeMatMult) requires extensive</div>
<div>data movement. I'm planning to implement </div><div>MatRAP (MatMatMatMult), but have not been able to work on it.</div><div>Suggestions are welcome.</div><div><br></div><div>Hong</div></div><br>