Re: [mpich-discuss] mpi_scatter
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 <[email protected]> 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 <[email protected]> wrote: See the comments in the scatter.c file.
Rajeev
On Dec 3, 2015, at 2:47 PM, Jen B <[email protected]> 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 <[email protected]> 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 <[email protected]> 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 [email protected] To manage subscription options or unsubscribe: https://lists.mpich.org/mailman/listinfo/discuss
-- Jeff Hammond [email protected] http://jeffhammond.github.io/
_______________________________________________ discuss mailing list [email protected] To manage subscription options or unsubscribe: https://lists.mpich.org/mailman/listinfo/discuss
_______________________________________________ discuss mailing list [email protected] To manage subscription options or unsubscribe: https://lists.mpich.org/mailman/listinfo/discuss
_______________________________________________ discuss mailing list [email protected] To manage subscription options or unsubscribe: https://lists.mpich.org/mailman/listinfo/discuss
_______________________________________________ discuss mailing list [email protected] To manage subscription options or unsubscribe: https://lists.mpich.org/mailman/listinfo/discuss
_______________________________________________ discuss mailing list [email protected] To manage subscription options or unsubscribe: https://lists.mpich.org/mailman/listinfo/discuss
participants (1)
-
Thakur, Rajeev