<div dir="ltr">I will add the old method back in.<div><br></div><div>And I did touch the MIS code and graph creation, which turns a bs>1 matrix into a bs==1 matrix/graph.<div>I don't think I changed the semantics but I did not verify that carefully.<br><div><br></div><div>In thinking more about this error I realize that this test has thin body elements, probably, and the threshold can make a big difference here. </div><div>The threshold is used in a slightly different way in the new algorithm, and there is no avoiding that. </div><div>Stephan did play around with the threshold but it would be nice to see if the old and new code are still (very) different with zero or < 0 threshold (< 0 will keep zero entries like BCs).</div><div><br></div><div>I am still puzzled why the new code was so different, given that there does not seem to be some sensitivity to threshold.</div><div>I'd like to figure this out because the old method can be very slow and use a lot of memory for full 3D problems.</div><div><br></div><div>Thanks,</div><div>Mark</div><div><br></div></div></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Fri, Aug 11, 2023 at 12:48 AM Pierre Jolivet <<a href="mailto:pierre.jolivet@lip6.fr">pierre.jolivet@lip6.fr</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div><br><div><br><blockquote type="cite"><div>On 11 Aug 2023, at 1:14 AM, Mark Adams <<a href="mailto:mfadams@lbl.gov" target="_blank">mfadams@lbl.gov</a>> wrote:</div><br><div><div dir="ltr"><div dir="ltr">BTW, nice bug report ...</div><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><br>
So in the first step it coarsens from 150e6 to 5.4e6 DOFs instead of to <br>
2.6e6 DOFs. </blockquote><div><br></div><div>Yes, this is the critical place to see what is different and going wrong.</div><div><br></div><div>My 3D tests were not that different and I see you lowered the threshold.</div><div>Note, you can set the threshold to zero, but your test is running so much differently than mine there is something else going on.</div><div>Note, the new, bad, coarsening rate of 30:1 is what we tend to shoot for in 3D.</div><div><br></div><div>So it is not clear what the problem is. Some questions:</div><div><br></div><div>* do you have a picture of this mesh to show me?</div><div>* what do you mean by Q1-Q2 elements?</div><div><br></div><div>It would be nice to see if the new and old codes are similar without aggressive coarsening.</div><div>This was the intended change of the major change in this time frame as you noticed.</div><div>If these jobs are easy to run, could you check that the old and new versions are similar with "-pc_gamg_square_graph 0 ", ( and you only need one time step).</div><div>All you need to do is check that the first coarse grid has about the same number of equations (large).</div><div><br></div><div>BTW, I am starting to think I should add the old method back as an option. I did not think this change would cause large differences.</div></div></div></div></blockquote><div><br></div><div>Not op, but that would be extremely valuable, IMHO.</div><div>This is impacting codes left, right, and center (see, e.g., another research group left wondering <a href="https://github.com/feelpp/feelpp/issues/2138" target="_blank">https://github.com/feelpp/feelpp/issues/2138</a>).</div><div><br></div><div>Mini-rant: as developers, we are being asked to maintain backward compatibility of the API/headers, but there is no such an enforcement for the numerics.</div><div>A breakage in the API is “easy” to fix, you get a compilation error, you either try to fix your code or stick to a lower version of PETSc.</div><div>Changes in the numerics trigger silent errors which are much more delicate to fix because users do not know whether something needs to be addressed in their code or if there is a change in PETSc.</div><div>I don’t see the point of enforcing one backward compatibility but not the other.</div><div><br></div><div>Thanks,</div><div>Pierre</div><br><blockquote type="cite"><div><div dir="ltr"><div class="gmail_quote"><div>Thanks,</div><div>Mark</div><div><br></div><div><br></div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Note that we are providing the rigid body near nullspace, <br>
hence the bs=3 to bs=6.<br>
We have tried different values for the gamg_threshold but it doesn't <br>
really seem to significantly alter the coarsening amount in that first step.<br>
<br>
Do you have any suggestions for further things we should try/look at? <br>
Any feedback would be much appreciated<br>
<br>
Best wishes<br>
Stephan Kramer<br>
<br>
Full logs including log_view timings available from <br>
<a href="https://github.com/stephankramer/petsc-scaling/" rel="noreferrer" target="_blank">https://github.com/stephankramer/petsc-scaling/</a><br>
<br>
In particular:<br>
<br>
<a href="https://github.com/stephankramer/petsc-scaling/blob/main/before/Level_5/output_2.dat" rel="noreferrer" target="_blank">https://github.com/stephankramer/petsc-scaling/blob/main/before/Level_5/output_2.dat</a><br>
<a href="https://github.com/stephankramer/petsc-scaling/blob/main/after/Level_5/output_2.dat" rel="noreferrer" target="_blank">https://github.com/stephankramer/petsc-scaling/blob/main/after/Level_5/output_2.dat</a><br>
<a href="https://github.com/stephankramer/petsc-scaling/blob/main/before/Level_6/output_2.dat" rel="noreferrer" target="_blank">https://github.com/stephankramer/petsc-scaling/blob/main/before/Level_6/output_2.dat</a><br>
<a href="https://github.com/stephankramer/petsc-scaling/blob/main/after/Level_6/output_2.dat" rel="noreferrer" target="_blank">https://github.com/stephankramer/petsc-scaling/blob/main/after/Level_6/output_2.dat</a><br>
<a href="https://github.com/stephankramer/petsc-scaling/blob/main/before/Level_7/output_2.dat" rel="noreferrer" target="_blank">https://github.com/stephankramer/petsc-scaling/blob/main/before/Level_7/output_2.dat</a><br>
<a href="https://github.com/stephankramer/petsc-scaling/blob/main/after/Level_7/output_2.dat" rel="noreferrer" target="_blank">https://github.com/stephankramer/petsc-scaling/blob/main/after/Level_7/output_2.dat</a> <br>
<br>
</blockquote></div></div>
</div></blockquote></div><br></div></blockquote></div>