[Dune] parallel DUNE grid for implementing a spherical shell (UGGrid)

Eike Mueller E.Mueller at bath.ac.uk
Mon Nov 12 16:01:24 CET 2012


Hi Oliver,

I tried several other strategies, but without any luck. Whatever I do, the algorithm seems to refuse to split up the macro 
cells, i.e. the 6 elements I insert with the grid factory.

I also tried to simplify the problem as much as possible. I now create one unit cube with the grid factory, do not insert any 
boundary segments and refine the grid by calling globalRefine(refcount), so that I end up with a cartesian unit cube split into 
8^refcount elements. I then balance the grid with loadBalance() (i.e. no arguments). I would have thought that that should work. 
Still, if I refine 1,2 or 3 times (i.e. I should end up with 8,64,512 elements), for an 8 core run only one process stores the 
entire grid.

Could this be a problem with the grid factory?

Thanks,

Eike

Oliver Sander wrote:
> Am 06.11.2012 08:44, schrieb Markus Blatt:
>> Hey Eike,
>>
>> On Mon, Nov 05, 2012 at 07:17:48PM +0000, Eike Mueller wrote:
>>>> And loadbalancing would only be needed for the macrogrid, e.g., not 
>>>> dynamic.
>>>>
>>> That's right, in the code I would refine the grid until there is
>>> only cell per processor (this is the macrogrid). Then I would call
>>> loadBalance, followed by further grid refinement. So for example
>>> with 24 processors, I would subdivide each of the six cells in the
>>> original grid into four cells, then loadbalance that grid and refine
>>> further.
>> Actually, this approach could be the root of the problem. The
>> loadbalancing is a heuristic algorithm and normally one always gets
>> some load imbalance here. But if you just have as many cells as
>> processor, then naturally some will end up with no cells at all.
> This is true, but it is not the whole truth.
> 
> The default load balancing strategy of UG is Recursive Coordinate 
> Bisection.
> This means roughly that the grid bounding box is partitionend into 
> axis-aligned
> cells, and these cells are assigned to processors.  I reckon (I didn't 
> check)
> that since your grid is a hollow sphere, some cells simply remain empty.
> 
> UG offers several other strategies, but all this really is hardly tested.
> Have a look at the lbs method in ug/parallel/dddif/lb.c:533 for some
> alternatives.
> 
> good luck,
> Oliver
> 
>>
>> How about doing some more refinement before load balancing?
>>
>> Cheers,
>>
>> Markus
>>
> 
> 
> _______________________________________________
> Dune mailing list
> Dune at dune-project.org
> http://lists.dune-project.org/mailman/listinfo/dune


-- 
Dr Eike Mueller
Research Officer

Department of Mathematical Sciences
University of Bath
Bath BA2 7AY, United Kingdom

+44 1225 38 5633
e.mueller at bath.ac.uk
http://people.bath.ac.uk/em459/




More information about the Dune mailing list