<div dir="ltr"><div>Firstly, thank you, everyone, for taking time to talk about this issue!  We definitely appreciate it.</div><div><br></div>Jed has this right - we would ideally not want to setup and teardown the preconditioner for each solve every iteration.<div><br></div><div>For VERY large solves (10k+ simultaneous solves) using this method we have no choice - and have done exactly what has been suggested: setup-solve-teardown for each one in serial.  But that's an extreme case where we can't fit all of the matrices in memory at the same time.  For the "normal" runs (10-1000 solves) that's not the case.<br><div><br></div><div>Derek</div></div></div><br><div class="gmail_quote"><div dir="ltr">On Tue, Apr 3, 2018 at 4:37 PM Jed Brown <<a href="mailto:jed@jedbrown.org">jed@jedbrown.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">This is likely in the context of a preconditioner for a composite solve,<br>
so the many BoomerAMG solvers will persist.  They all get set up and<br>
then applied in sequence to the many scalar systems at each iteration of<br>
an outer method.<br>
<br>
If hypre doesn't want to dup its communicators internally, then PETSc<br>
will dup a communicator for hypre, attach it to the outer communicator,<br>
and look for it each time a new hypre object is created.  It's easy for<br>
PETSc (we've done this for PETSc since the early days), but a headache<br>
for other libraries.<br>
<br>
"Li, Ruipeng" <<a href="mailto:li50@llnl.gov" target="_blank">li50@llnl.gov</a>> writes:<br>
<br>
> Hi, Fande,<br>
><br>
> "For instance, if an application has multiple fields and each field will be solved by a HYPRE solver,  then we end up with  multiple hypre solves. The multiple hypre solves are not run simultaneously, instead, it will be run one-by-one. If we assign the same communicator to the multiple hypre solves, any potential tag conflict?"<br>
><br>
> In this scenario, is just the solve phase of BoomerAMG one after another, or also the setup of AMG? Since BoomerAMG takes the communicator from the A matrix, if the entire hypre solve (setup + solve) is serial, there should be no conflicts.<br>
><br>
> -Ruipeng<br>
><br>
> . -- .- .. .-.. / ..-. .-. --- -- / .-. ..- .. .--. . -. --. / .-.. ..<br>
>  Ruipeng Li<br>
>  Center for Applied Scientific Computing<br>
>  Lawrence Livermore National Laboratory<br>
>  P.O. Box 808, L-561<br>
>  Livermore, CA 94551<br>
>  phone - <a href="tel:(925)%20422-6037" value="+19254226037" target="_blank">(925) 422-6037</a>,  email - <a href="mailto:li50@llnl.gov" target="_blank">li50@llnl.gov</a><br>
><br>
><br>
> ________________________________________<br>
> From: Kong, Fande <<a href="mailto:fande.kong@inl.gov" target="_blank">fande.kong@inl.gov</a>><br>
> Sent: Tuesday, April 3, 2018 1:34 PM<br>
> To: hypre-support<br>
> Cc: Barry Smith; Derek Gaston; Li, Ruipeng; Osei-Kuffuor, Daniel; For users of the development version of PETSc; Schroder, Jacob B.; <a href="mailto:tzanio@llnl.gov" target="_blank">tzanio@llnl.gov</a>; <a href="mailto:umyang@llnl.gov" target="_blank">umyang@llnl.gov</a>; Wang, Lu<br>
> Subject: Re: [issue1595] Issues of limited number of MPI communicators when having many instances of hypre boomerAMG with Moose<br>
><br>
><br>
><br>
> On Tue, Apr 3, 2018 at 2:12 PM, Rob Falgout hypre Tracker <<a href="mailto:hypre-support@llnl.gov" target="_blank">hypre-support@llnl.gov</a><mailto:<a href="mailto:hypre-support@llnl.gov" target="_blank">hypre-support@llnl.gov</a>>> wrote:<br>
><br>
> Rob Falgout <<a href="mailto:rfalgout@llnl.gov" target="_blank">rfalgout@llnl.gov</a><mailto:<a href="mailto:rfalgout@llnl.gov" target="_blank">rfalgout@llnl.gov</a>>> added the comment:<br>
><br>
> Hi Barry,<br>
><br>
> Can you explain the scenario where multiple hypre solves would be working in parallel with the same communicator?  Thanks!<br>
><br>
> Hi Rob,<br>
><br>
> For instance, if an application has multiple fields and each field will be solved by a HYPRE solver,  then we end up with  multiple hypre solves. The multiple hypre solves are not run simultaneously, instead, it will be run one-by-one. If we assign the same communicator to the multiple hypre solves, any potential tag conflict?<br>
><br>
> Fande,<br>
><br>
><br>
><br>
> -Rob<br>
><br>
> ____________________________________________<br>
> hypre Issue Tracker <<a href="mailto:hypre-support@llnl.gov" target="_blank">hypre-support@llnl.gov</a><mailto:<a href="mailto:hypre-support@llnl.gov" target="_blank">hypre-support@llnl.gov</a>>><br>
> <<a href="https://urldefense.proofpoint.com/v2/url?u=http-3A__cascb1.llnl.gov_hypre_issue1595&d=DwIFaQ&c=54IZrppPQZKX9mLzcGdPfFD1hxrcB__aEkJFOKJFd00&r=DUUt3SRGI0_JgtNaS3udV68GRkgV4ts7XKfj2opmiCY&m=3KsQjTxI8eRWrSIJtB3o9NlBc4bEuuP4HxiT-BlMx3U&s=FjvfvXD21bX8LA2TAD-J6MWCJyMNm0aameRp_9nfLYs&e=" rel="noreferrer" target="_blank">https://urldefense.proofpoint.com/v2/url?u=http-3A__cascb1.llnl.gov_hypre_issue1595&d=DwIFaQ&c=54IZrppPQZKX9mLzcGdPfFD1hxrcB__aEkJFOKJFd00&r=DUUt3SRGI0_JgtNaS3udV68GRkgV4ts7XKfj2opmiCY&m=3KsQjTxI8eRWrSIJtB3o9NlBc4bEuuP4HxiT-BlMx3U&s=FjvfvXD21bX8LA2TAD-J6MWCJyMNm0aameRp_9nfLYs&e=</a>><br>
> ____________________________________________<br>
</blockquote></div>