<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Windows-1252">
<style type="text/css" style="display:none;"> P {margin-top:0;margin-bottom:0;} </style>
</head>
<body dir="ltr">
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
I don't think there is a way at the moment that will work with both UG and ALUGrid.</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
The ALUGrid interface methods are described here<br>
</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<a href="https://arxiv.org/pdf/1407.6954.pdf">https://arxiv.org/pdf/1407.6954.pdf</a></div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
on page 21. It doesn't use a vector but a callback, i.e., a callable which will be invoked for each macro element of a given partition. The approach in the file you mentioned makes less sense for ALUGrid because the partition vector (as far as I can tell)
is index with the leaf index set but ALU can't partition on that level (or one has to guarantee that all children of a macro element have the same destination rank). The ALU version is more general because it could be called also on each leaf element by UG
and if the user has computed the partition for the macro elements then getting a destination of the children is easy. If the partition was computed for the leafs and is to be used for ALUGrid some algorithm would have to be added by the user.<br>
</div>
<div id="appendonsend"></div>
<hr style="display:inline-block;width:98%" tabindex="-1">
<div id="divRplyFwdMsg" dir="ltr"><font face="Calibri, sans-serif" style="font-size:11pt" color="#000000"><b>From:</b> Dune <dune-bounces@lists.dune-project.org> on behalf of Timo Koch <timo.koch@iws.uni-stuttgart.de><br>
<b>Sent:</b> 13 May 2020 13:34<br>
<b>To:</b> dune@lists.dune-project.org <dune@lists.dune-project.org><br>
<b>Subject:</b> [Dune] Repartitioning/dynamic load balancing in Dune</font>
<div> </div>
</div>
<div class="" style="word-wrap:break-word; line-break:after-white-space">Dear Dune developers and users,
<div class=""><br class="">
</div>
<div class="">we are currently looking into a geothermal application case where we could profit from dynamic load balancing to optimise the processor load in parallel MPI simulations.</div>
<div class="">As far as I can see from the docs dynamic load balancing should be possible with dune-uggrid (horizontal and vertical) and dune-alugrid (horizontal).</div>
<div class="">However, there also has been a discussion on the Dune Dev Meeting 2018 (<a href="https://www.dune-project.org/community/meetings/2018-11-devmeeting/" class="">https://www.dune-project.org/community/meetings/2018-11-devmeeting/</a>) about adding
a “repartition” method to the grid interface, so I’m not quite sure what is currently working.</div>
<div class=""><br class="">
</div>
<div class="">I found <a href="https://gitlab.dune-project.org/core/dune-grid/-/blob/master/dune/grid/utility/parmetisgridpartitioner.hh" class="">https://gitlab.dune-project.org/core/dune-grid/-/blob/master/dune/grid/utility/parmetisgridpartitioner.hh</a> which
seems to be grid agnostic and the corresponding test just call</div>
<div class=""><code class=""><span class="x_n">grid</span><span class="x_o">-></span><span class="x_n">loadBalance</span><span class="x_p">(</span><span class="x_n">part</span><span class="x_p">,</span>
<span class="x_mi">0</span><span class="x_p">);</span></code></div>
<div class="">where part seems to be just a vector of target ranks for each entity.</div>
<div class="">Unfortunately, we can’t use ParMETIS due to the license restrictions.</div>
<div class=""><br class="">
</div>
<div class="">My questions would be</div>
<div class="">1) Is the way implemented in the loadbalance test in dune-grid the way to currently do dynamic load balancing and will it work for dune-uggrid and dune-alugrid? Possible restrictions?</div>
<div class="">2) What is the rational behind the new “repartition” interface and which problems will it solve?</div>
<div class="">3) Does anyone have accessible/shareable application or testing code that uses dynamic load balancing via the dune grid interface? Ideally not using ParMETIS but e.g. Scotch or something else.</div>
<div class=""><br class="">
</div>
<div class="">Already thanks for any answers in advance!</div>
<div class=""><br class="">
</div>
<div class="">Timo </div>
<div class="">
<div class=""><br class="x_webkit-block-placeholder">
</div>
<div class=""><br class="x_webkit-block-placeholder">
</div>
<div class="">
<div style="color:rgb(0,0,0); font-family:Helvetica; font-size:12px; font-style:normal; font-variant-caps:normal; font-weight:normal; letter-spacing:normal; orphans:auto; text-align:start; text-indent:0px; text-transform:none; white-space:normal; widows:auto; word-spacing:0px; text-decoration:none">
-- <br class="">
_________________________________________________</div>
<div style="color:rgb(0,0,0); font-family:Helvetica; font-size:12px; font-style:normal; font-variant-caps:normal; font-weight:normal; letter-spacing:normal; orphans:auto; text-align:start; text-indent:0px; text-transform:none; white-space:normal; widows:auto; word-spacing:0px; text-decoration:none">
<br class="">
Timo Koch phone: +49 711 685 64676<br class="">
IWS, Universität Stuttgart fax: +49 711 685 60430<br class="">
Pfaffenwaldring 61 <a href="mailto:timo.koch@iws.uni-stuttgart.de" class="">
email: timo.koch@iws.uni-stuttgart.de</a><br class="">
D-70569 Stuttgart url: <a href="http://www.iws.uni-stuttgart.de/en/lh2/" class="">www.iws.uni-stuttgart.de/en/lh2/</a><br class="">
_________________________________________________</div>
</div>
<br class="">
</div>
</div>
</body>
</html>