[mpich-discuss] mpi_scatter

Thakur, Rajeev thakur at mcs.anl.gov
Thu Dec 3 15:29:19 CST 2015


Scatter uses a binomial tree algorithm. Scatterv uses a linear algorithm.

The paper is old. See the comments in the bcast.c file for what is currently used.


> On Dec 3, 2015, at 3:07 PM, Jen B <jenbna at gmail.com> wrote:
> 
> Thanks all. So it uses linear algorithm with send/recv.
> 
> For my second question, i.e., mpi_bcast for long messages the paper says scatter+allgather. In the case when the message size is not evenly divisible by number of processes, I guess it must be using scatter+allgatherv? 
> 
> Best,
> Jen
> 
> 
> On Thu, Dec 3, 2015 at 2:50 PM, Thakur, Rajeev <thakur at mcs.anl.gov> wrote:
> See the comments in the scatter.c file.
> 
> Rajeev
> 
> > On Dec 3, 2015, at 2:47 PM, Jen B <jenbna at gmail.com> wrote:
> >
> > Here is the sample of information that I need. For example, in that paper for long messages (>=512KB) and any number of processes "allgather" uses the ring algorithm. Can anyone give me similar answer (algorithm used in MPICH2) for mpi_scatter (when we have long messages, and for both power of two and non power of two number of processes)? Thanks.
> >
> > Best,
> > Jen
> >
> > On Thu, Dec 3, 2015 at 2:25 PM, Jeff Hammond <jeff.science at gmail.com> wrote:
> > I don't know exactly what information you want, but you will find a lot of useful comments in the source files here: http://git.mpich.org/mpich.git/tree/HEAD:/src/mpi/coll.  In particular, if you run 'grep -i "we use" *.c', you will see statements about Rabenseifer's algorithm, Bruck's algorithm, recursive doubling, pairwise exchange, etc.
> >
> > Best,
> >
> > Jeff
> >
> > On Thu, Dec 3, 2015 at 8:24 AM, Jen B <jenbna at gmail.com> wrote:
> > Hello,
> >
> > I am trying to understand how the mpi_scatter is implemented according to MPICH2 for long messages. I went through the paper of R. Thakur, et al., titled "Optimization of Collective Communication Operations in MPICH." It is stated there that for long messages mpi_bcast is composed of scatter and allgather (where latter two are based on the Van de Geijn's algorithm). However I wasn't able to find the mpi_scatter details. Could you please explain this? Also, the another thing is that I think for long messages (that are not divisible exactly by the number of processes) this part would use a scatterv + allgatherv. Am I right? Thank you!
> >
> > Best,
> > Jen
> >
> >
> >
> >
> >
> > _______________________________________________
> > discuss mailing list     discuss at mpich.org
> > To manage subscription options or unsubscribe:
> > https://lists.mpich.org/mailman/listinfo/discuss
> >
> >
> >
> > --
> > Jeff Hammond
> > jeff.science at gmail.com
> > http://jeffhammond.github.io/
> >
> > _______________________________________________
> > discuss mailing list     discuss at mpich.org
> > To manage subscription options or unsubscribe:
> > https://lists.mpich.org/mailman/listinfo/discuss
> >
> > _______________________________________________
> > discuss mailing list     discuss at mpich.org
> > To manage subscription options or unsubscribe:
> > https://lists.mpich.org/mailman/listinfo/discuss
> 
> _______________________________________________
> discuss mailing list     discuss at mpich.org
> To manage subscription options or unsubscribe:
> https://lists.mpich.org/mailman/listinfo/discuss
> 
> _______________________________________________
> discuss mailing list     discuss at mpich.org
> To manage subscription options or unsubscribe:
> https://lists.mpich.org/mailman/listinfo/discuss

_______________________________________________
discuss mailing list     discuss at mpich.org
To manage subscription options or unsubscribe:
https://lists.mpich.org/mailman/listinfo/discuss


More information about the discuss mailing list