<br><br>On Thursday, 28 January 2016, Matthew Knepley <<a href="javascript:_e(%7B%7D,'cvml','knepley@gmail.com');" target="_blank">knepley@gmail.com</a>> 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">On Thu, Jan 28, 2016 at 11:36 AM, Xiangdong <span dir="ltr"><<a>epscodes@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div dir="ltr"><div><div>What functions/tools can I use for dynamic migration in DMPlex framework?<br></div></div></div></blockquote><div><br></div><div>In this paper, <a href="http://arxiv.org/abs/1506.06194" target="_blank">http://arxiv.org/abs/1506.06194</a>, we explain how to use the DMPlexMigrate() function to redistribute data.</div><div>In the future, its likely we will add a function that wraps it up with determination of the new partition at the same time.</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div dir="ltr"><div><div></div>Can you also name some external mesh management systems? Thanks.</div></div></blockquote><div><br></div><div>I will note that if load balance in the solve is your only concern, PCTelescope can redistribute the DMDA solve.</div></div></div></div></blockquote><div><br></div><div>Currently Telescope will only repartition 2d and 3d DMDA's. It does perform data migration and allows users to specify the number of ranks to be used in each I,j,k direction via -xxx_grid_x etc. I wouldn't say it supports "load balancing", as there is no mechanism to define number of points in each sub-domain</div><div><br></div><div>Cheers</div><div>  Dave</div><div><br></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 class="gmail_extra"><div class="gmail_quote"><div><br></div><div>  Thanks,</div><div><br></div><div>    Matt</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div dir="ltr"><div><span><font color="#888888"><br></font></span></div><span><font color="#888888">Xiangdong<br></font></span></div><div><div><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Jan 28, 2016 at 12:21 PM, Barry Smith <span dir="ltr"><<a>bsmith@mcs.anl.gov</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><span><br>
> On Jan 28, 2016, at 11:11 AM, Xiangdong <<a>epscodes@gmail.com</a>> wrote:<br>
><br>
> Yes, it can be either DMDA or DMPlex. For example, I have 1D DMDA with Nx=10 and np=2. At the beginning each processor owns 5 cells. After some simulation time, I found that repartition the 10 cells into 3 and 7 is better for load balancing. Is there an easy/efficient way to migrate data from one partition to another partition? I am wondering whether there are some functions or libraries help me manage this redistribution.<br>
<br>
</span>  For DMDA we don't provide tools for doing this, nor do we expect to. For this type of need for dynamic migration we recommend using DMPlex or some external mesh management system.<br>
<span><font color="#888888"><br>
  Barry<br>
</font></span><div><div><br>
><br>
> Thanks.<br>
> Xiangdong<br>
><br>
> On Thu, Jan 28, 2016 at 12:20 AM, Jed Brown <<a>jed@jedbrown.org</a>> wrote:<br>
> Xiangdong <<a>epscodes@gmail.com</a>> writes:<br>
><br>
> > I have a question on dynamic load balance in petsc. I started running a<br>
> > simulation with one partition. As the simulation goes on, that partition<br>
> > may lead to load imbalance since it is a non-steady problem. If it is worth<br>
> > to perform the load balance, is there an easy way to re-partition the mesh<br>
> > and continue the simulation?<br>
><br>
> Are you using a PETSc DM?  What "mesh"?  If you own it, then<br>
> repartitioning it is entirely your business.<br>
><br>
> In general, after adapting the mesh, you rebuild all algebraic data<br>
> structures.  Solvers can be reset (SNESReset, etc.).<br>
><br>
<br>
</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>
</blockquote>