<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Mon, Mar 5, 2018 at 4:29 AM, Åsmund Ervik <span dir="ltr"><<a href="mailto:Asmund.Ervik@sintef.no" target="_blank">Asmund.Ervik@sintef.no</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi all,<br>
<br>
We have a code that solves the 1D multiphase Euler equations, using some very expensive thermodynamic calls in each cell in each time step. The computational time for different cells varies significantly in the spatial direction (due to different thermodynamic states), and varies slowly from timestep to timestep.<br>
<br>
Currently the code runs in serial, but I would like to use a PETSc DM of some sort to run it in parallell. There will be no linear on nonlinear PETSc solves etc., just a distributed mesh, at least initially. The code is Fortran.<br>
<br>
Now for my question: Is it possible to do dynamic load balancing using a plain 1D DMDA, somehow?</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"> There is some mention of this for PCTELESCOPE, but I guess it only works for linear solves?</blockquote><div><br></div><div>No, that is just their application.</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"> Or could I use an index set or some other PETSc structure? Or do I need to use a 1D DMPLEX?<br></blockquote><div><br></div><div>1D Plex and 1D DA are basically equivalent since 1D has no topology, and discretizations look mostly the same.</div><div><br></div><div>Now that I am looking, the Plex redistribution is exposed, but the DA redistribution is not.</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
If the latter, how do I make a 1D DMPLEX? All the variables are stored in cell centers (collocated), so it's a completely trivial "mesh". I tried reading the DMPLEX manual, and looking at examples, but I'm having trouble penetrating the FEM lingo / abstract nonsense.<br></blockquote><div><br></div><div>First question, do you want to create the partition yourself, or have a program do it for you?</div><div><br></div><div>if you make it, then DA is the best bet, and we should just expose the redistribution code which is</div><div>already in PCTELESCOPE, so that you can call it directly.</div><div><br></div><div>If you want a partitioner to do it, then Plex is probably the best, In that case, you need to make a trivial</div><div>PetscSection to say how many variables lie on each cell. With this info, everything else should be pretty</div><div>automatic.</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">
Best regards,<br>
Åsmund<br>
</blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature" data-smartmail="gmail_signature"><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.caam.rice.edu/~mk51/" target="_blank">https://www.cse.buffalo.edu/~knepley/</a><br></div></div></div></div></div>
</div></div>