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
-- 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 boostpro.com