<div dir="ltr"><div class="gmail_quote"><div dir="ltr">On Thu, Nov 15, 2018 at 11:52 AM Karin&NiKo via petsc-users <<a href="mailto:petsc-users@mcs.anl.gov">petsc-users@mcs.anl.gov</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div><div>Dear PETSc team,<br><br></div>I am solving a linear transient dynamic problem, based on a discretization with finite elements. To do that, I am using FGMRES with GAMG as a preconditioner. I consider here 10 time steps. <br></div>The problem has round to 118e6 dof and I am running on 1000, 1500 and 2000 procs. So I have something like 100e3, 78e3 and 50e3 dof/proc.<br>I notice that the performance deteriorates when I increase the number of processes. <br></div><div>You can find as attached file the log_view of the execution and the detailled definition of the KSP.<br><br></div><div>Is the problem too small to run on that number of processes or is there something wrong with my use of GAMG?<br></div></div></div></blockquote><div><br></div><div>I am having a hard time understanding the data. Just to be clear, I understand you to be running the exact same problem on 1000, 1500, and 2000 processes, so looking for strong speedup. The PCSetUp time actually sped up a little, which is great, and its still a small percentage (notice that your whole solve is only half the runtime). Lets just look at a big time component, MatMult,</div><div><br></div><div>P = 1000</div><div><pre class="gmail-aLF-aPX-K0-aPE" style="font-family:"Courier New",Courier,monospace,arial,sans-serif;margin-top:0px;margin-bottom:0px;white-space:pre-wrap;word-wrap:break-word;color:rgb(0,0,0);font-size:14px">MatMult             7342 1.0 4.4956e+01 1.4 4.09e+10 1.2 9.6e+07 4.3e+03 0.0e+00 23 53 81 86  0  23 53 81 86  0 859939
</pre><br class="gmail-Apple-interchange-newline"></div><div>P = 2000</div><div><pre class="gmail-aLF-aPX-K0-aPE" style="font-family:"Courier New",Courier,monospace,arial,sans-serif;margin-top:0px;margin-bottom:0px;white-space:pre-wrap;word-wrap:break-word;color:rgb(0,0,0);font-size:14px">MatMult             7470 1.0 4.7611e+01 1.9 2.11e+10 1.2 2.0e+08 2.9e+03 0.0e+00 11 53 81 86  0  11 53 81 86  0 827107
 </pre></div><div>So there was no speedup at all. It is doing 1/2 the flops per process, but taking almost exactly the same time. This looks like your 2000 process run is on exactly the same number of nodes as your 1000 process run, but you just use more processes. Your 1000 process run was maxing out the bandwidth of those nodes, and thus 2000 runs no faster. Is this true? Otherwise, I am misunderstanding the run.</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 dir="ltr"><div></div><div>I thank you in advance for your help,<br></div><div>Nicolas<br></div></div></div>
</blockquote></div><br clear="all"><div><br></div>-- <br><div dir="ltr" class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><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><br></div><div><a href="http://www.cse.buffalo.edu/~knepley/" target="_blank">https://www.cse.buffalo.edu/~knepley/</a><br></div></div></div></div></div></div></div></div>