<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Thu, Jun 4, 2015 at 4:47 PM, Justin Chang <span dir="ltr"><<a href="mailto:jychang48@gmail.com" target="_blank">jychang48@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div>Thank you Matt and Mark for the clarification. Matt, if you recall our discussion about calculating the arithmetic intensity from the earlier threads, it seems GAMG now has a myriad of all these additional vector and matrix operations that were not present in the CG/Jacobi case. Running with the command line options you and Mark suggested, I now have these additional operations to deal with:<br><br></div><div>VecMDot<br></div><div>VecAXPBYCZ<br></div><div>VecMAXPY<br></div><div>VecSetRandom<br></div><div>VecNormalize<br></div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div>MatMultAdd<br></div>MatMultTranspose<br></div>MatSolve<br></div>MatConvert<br></div>MatScale<br></div>MatResidual<br></div><div>MatCoarsen<br></div><div>MatAXPY<br></div>MatMatMult<br></div>MatMatMultSym<br></div>MatMatMultNum<br></div>MatPtAP<br></div>MatPtAPSymbolic<br></div>PatPtAPNumeric<br></div>MatTrnMatMult<br></div>MatTrnMatMultSym<br></div>MatTrnMatMultNum<br></div>MatGetSymTrans<br></div>KSPGMRESOrthog<br></div>PCGAMGGraph_AGG<br></div>PCGAMGCoarse_AGG<br></div>PCGAMGProl_AGG<br></div>PCGAMGPOpt_AGG<br></div>GAMG: createProl and all of its associated events.<br></div><div>GAMG: partLevel</div><div>PCSetUpOnBlocks<br><br></div><div>Attached is the output from -log_summary showing the exact counts for the case I am running.<br><br></div><div>I have the following questions:<br></div></div></blockquote><div><br></div><div>I will do my best</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div></div><div>1) For the Vec operations VecMDot and VecMAXPY, it seems the estimation of total bytes transferred (TBT) relies on knowing how many vectors there are. Is there a way to figure this out? Or at least with gamg what would it be, three vectors?<br></div></div></blockquote><div><br></div><div>AMG is very complex. I think that the simple performance model a) might be too simple, and b) is really hard</div><div>to model this way all at once. It really needs to be broken into parts. Thus I am not sure how much you learn</div><div>from this model for AMG.</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div></div><div>2) It seems there are a lot of matrix manipulations and multiplications. Is it safe to say that the size and number of non zeroes is the same? Or will it change?<br></div></div></blockquote><div><br></div><div>Nope, since they happen on different levels.</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div></div><div>3) If I follow the TBT tabulation as in that paper you pointed me to, would MatMultTranspose follow the same formula if the Jacobian is symmetric?<br></div></div></blockquote><div><br></div><div>Yes.</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div></div><div>4) How do I calculate anything that requires the multiplication of at least two matrices?<br></div></div></blockquote><div><br></div><div>This is a hard problem.</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div></div><div>5) More importantly, are any of the above calculations necessary? Because log_summary seems to indicate that MatMult() has the greatest amount of workload and number of calls. My only hesitation is how much traffic MatMatMults may take (assuming I go off of the same assumptions as in that paper).<br></div></div></blockquote><div><br></div><div>The overwhleming cost of AMG is the Galerkin triple-product RAP.</div><div><br></div><div>  Thanks,</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"><div dir="ltr"><div></div><div>6) And/or, are there any other functions that I missed that might be important to calculate as well?<br></div><div><br></div><div>Thanks,<br></div><div>Justin<br></div></div><div><div><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Jun 4, 2015 at 11:33 AM, Mark Adams <span dir="ltr"><<a href="mailto:mfadams@lbl.gov" target="_blank">mfadams@lbl.gov</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><span><br><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Jun 4, 2015 at 12:29 PM, Matthew Knepley <span dir="ltr"><<a href="mailto:knepley@gmail.com" target="_blank">knepley@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><span>On Thu, Jun 4, 2015 at 10:31 AM, Justin Chang <span dir="ltr"><<a href="mailto:jychang48@gmail.com" target="_blank">jychang48@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div><div><div><div><div>Yeah I saw his recommendation and am trying it out. But I am not sure what most of those parameters mean. For instance:<br><br></div>1) What does -pc_gamg_agg_nsmooths refer to?<br></div></div></div></div></div></blockquote><div><br></div></span><div>This is always 1 (its the definition of smoothed aggregation). Mark allows 0 to support unsmoothed aggregation, which may be</div><div>better for easy problems on extremely large machines.</div><span><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div><div><div><div></div>2) Does increase in the threshold of -pc_gamg_threshold translate to making the coarsening faster?<br></div></div></div></div></blockquote><div><br></div></span><div>Yes, I believe so (easy to check).</div></div></div></div></blockquote></div><br></div></span><div class="gmail_extra">Other way around.</div></div>
</blockquote></div><br></div>
</div></div></blockquote></div><br><br clear="all"><div><br></div>-- <br><div>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</div>
</div></div>