In particular, it is essential for me to know what happens when the mpi_scatter is run on non-power of two number of processes. I have looked into the scatter.c file comments, but it is not mentioned anywhere there. Thanks!

Best,
Jen

On Sat, Dec 5, 2015 at 1:05 PM, Jen B <jenbna@gmail.com> wrote:
Hi,

Sorry for bugging you guys again, I have a couple of things I wanted to make sure about.

So mpi_scatter uses a binomial tree. If, for example, I have processes p0, p1, p2, p3. Then the binomial tree would be p0 -> p1,p0 -> p2,p2 -> p3. For my total message n, the parts that need to send to the processes are n0, n1, n2, n3. Then, will p0->p1 have only n1 in transit, and p0->p2 have n2+n3 in transit, and finally p2->p3 have n3 in transit?

And how would the binomial tree be built for processes p0,p1,p2,p3,p4? Is it as above with addition of p0->p4 (i.e., we get closest binomial tree and add the rest to p0)?

Any help will be greatly appreciated!

Best,
Jen