On Wed, Jun 13, 2012 at 6:45 PM, Alexander Grayver <span dir="ltr"><<a href="mailto:agrayver@gfz-potsdam.de" target="_blank">agrayver@gfz-potsdam.de</a>></span> wrote:<br><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Hello,<br>
<br>
As stated, I would like to estimate computation to communication ratio for PETSc's linear algebra routines (e.g. MatMult{Transpose}, MatPtAP, MatMatMult etc.)<br>
As far as I understand the ratio depends on particular implementation and number of processes one runs application on.<br>
So I guess these formulas should be known?<br>
</blockquote><div><br></div><div>It depends on the input data. For example, block diagonal matrices do not communicate in MatMult().</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
If not then I see one way to estimate it. Write app with those operations, parse -log_summary and then divide flops/messages, however the question is what information from -log_summary output should be used for that?<br></blockquote>
<div><br></div><div>We give the number of messages and the average message length, so you can get the total length across processes. Since</div><div>each side records, we divide by 2 (I think, you should check PetscLogView for specifics). You can also use PetscLogViewPython()</div>
<div>to simplify parsing.</div><div><br></div><div> Matt</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Thanks.<span class="HOEnZb"><font color="#888888"><br>
<br>
-- <br>
Regards,<br>
Alexander<br>
<br>
</font></span></blockquote></div><br><br clear="all"><div><br></div>-- <br>What most experimenters take for granted before they begin their experiments is infinitely more interesting than any results to which their experiments lead.<br>
-- Norbert Wiener<br>