Boost logo

Boost-MPI :

Subject: Re: [Boost-mpi] Point 2 point free collectives.
From: alainm (alain.miniussi_at_[hidden])
Date: 2016-10-25 17:22:59

On 25/10/2016 22:18, MM wrote:
> I'm sorry I didn't follow the discussion, but how are the scatterv and
> gatherv you're proposing in your branch different from the ones
> already in latest boost ?
In the latest boost, when dealing with a type with non MPI datatype,
each slot of the data transmitted through gatherv and scatterv is
serialized and sent individually (through packed_archive_send/recv)
through MPI_Send/Recv. (two pairs of those actually, one to send the
size and one to send the archive).

The proposed implementation does not use MPI_Send/Recv but only global
communication primitives. For a scatterv for example, the root process
serialize all the data in a single archive while keeping track of each
process data size, Dispatch those sizes through a single MPI_Scatter,
and dispatch the archive as a byte array through a MPI_Scatterv.

Scatter and scatterv share the same implementation basically, since a
non MPI datatype does not usually have a fixed size anyway.
gather/gatherv as a similar implementation, but symmetrical.
So it basically replaces point to point communications with global
The usefulness of the whole thing is based on the hypothesis that
globals have a benefit other point to point (some clusters actually have
a different network for globals).
Also, it's expected to ease the non blocking versions of globals.


> _______________________________________________
> Boost-mpi mailing list
> Boost-mpi_at_[hidden]

Alain Miniussi
Pole Génie Logiciel Scientifique
Observatoire de la Côte d'Azur
Blv de l'Observatoire, Nice

Boost-Commit list run by troyer at