[Dune] Intention of usage and application of: ISTL Communication versus CollectiveCommunication in Dune/Grid ?

Markus Blatt Markus.Blatt at ipvs.uni-stuttgart.de
Thu Jul 26 11:43:15 CEST 2007


Hi Benedikt,

On Thu, Jul 26, 2007 at 10:36:52AM +0200, Benedikt Oswald wrote:
> our code. There I stumbled over two different (in my perception)
> but similiar things:
> 
> there is ISTL Communication capability and there is CollectiveCommunication
> in the Dune/Grid module ?
> 
> What are the different, intended application areas of these
> communication interfaces ? Is ISTL Communicatin only to be used
> in ITSL related things, e.g. for communication IndexSets etc ?

They are not similar but rather complement each
other. CollectiveCommunication is a wrapper around the most prominent
collective communication calls of MPI. It is meant for being used when
programming parallel algorithms and at the same time supporting purely
sequential use even without any MPI installed.

The communication interface of ISTL in contrast is meant for easily
setting up communication schemes where some parts of a random access
container need to communicated to other processes. This is the case in
parallel iterative methods.

It is is totally independent of ISTL by the way so every data
structure supporting operator[](size_t i) can be used as a target or
source of the communication.

> For example in our application we need to communicate some
> matrix elements, for computing the defect in a Jacobi iterative scheme.
> Should we use CollectiveCommunication in Dune/Grid or the ISTL 
> Communication ?
> 

I assume your domain decomposition is not overlapping and you need to
augment your matrix sparsity pattern to artifically make it
overlapping.

You should probably should take a look at the communicate method within
any parallel DUNE grid.
Peter does such an extension in class P1ExtendOverlap in
dune-disc/disc/functions/p1function.hh 

Once your augmented matrices are setup you should use the parallel
components in ISTL to create your solvers.

Cheers,

Markus




More information about the Dune mailing list