[Dune-devel] On which side is DataHandleIF::size() called

Martin Nolte nolte at mathematik.uni-freiburg.de
Wed Jul 26 09:27:33 CEST 2017


Hi Markus,

you assumption seems correct to me: In general, the receiver cannot know how 
much data was sent. Loadbalancing for a discrete function space with 
element-dependent polynomial degree would be a simple example.

Unfortunately, there are many situations in which the receiver does actually 
know how much data is sent (e.g., Finite Volume, i.e., 1 DoF per element), but 
there is no way to communicate this to the grid.

There are further deficiencies of the current interface in more complex 
scenarios (e.g., how do you sent data of different type?) that cannot currently 
be handled. Two years ago, we started discussing over a new concept for a data 
handle. Maybe it is finally time to make it happen.

Best,

Martin

On 07/26/2017 09:18 AM, Markus Blatt wrote:
> Hi,
> 
> when I first had to deal with parallelizing a DUNE grid I somehow
> assumed that the size method is only allowed to be called on the
> sending side. Why else what the scatter method have the size as an
> additional parameter.
> 
> Somehow I was not sure whether that assumption really holds or every
> grid developers thinks so. I just wrote a handle to be used for
> loadbalancing a grid from a master process to all. As a precaution I
> introduced an assertion in the size method that makes sure it is only
> called on rank 0. For UGGrid this assertion just failed.
> 
> Is my assumption wrong, is it a bug in UG or am I missing something
> fundamental here?
> 
> Cheers,
> 
> Markus
> 

-- 
Dr. Martin Nolte <nolte at mathematik.uni-freiburg.de>

Universität Freiburg                                   phone: +49-761-203-5630
Abteilung für angewandte Mathematik                    fax:   +49-761-203-5632
Hermann-Herder-Straße 10
79104 Freiburg, Germany




More information about the Dune-devel mailing list