On May 24, 2012, at 10:57 AM CDT, Lisandro Dalcin wrote: > On 24 May 2012 12:40, George Bosilca <bosi...@eecs.utk.edu> wrote: > >> I don't see much difference with the other collective. The generic behavior >> is that you apply the operation on the local group but the result is moved >> into the remote group. > > Well, for me this one DO IS different (for example, SCATTER is > unidirectional for intercomunicators, but REDUCE_SCATTER is > bidirectional). The "recvbuff" is a local buffer, but you understand > "recvcounts" as remote. > > Mmm, the standard is really confusing in this point...
Don't think of it like an intercommunicator-scatter, think of it more like an intercommunicator-allreduce. The allreduce is also bidirectional. The only difference is that instead of an allreduce (logically reduce+bcast), you instead have a reduce_scatter (logically reduce+scatterv). -Dave