Thanks Jed for the advice. How well-implemented are the one-sided communication routines? Are they something that could be trusted in a production code?
Sent from my iPad
On Mar 6, 2012, at 6:06 PM, "Jed Brown" <jed@59A2.org
On Tue, Mar 6, 2012 at 15:43, Timothy Stitt <Timothy.Stitt.firstname.lastname@example.org>
Can anyone tell me whether it is legal to pass zero values for some of the send count elements in an MPI_AlltoallV() call? I want to perform an all-to-all operation but for performance reasons do not want to send data to various ranks who don't need to receive any useful values. If it is legal, can I assume the implementation is smart enough to not send messages when the send count is 0?
FYI: my tests show that AlltoallV operations with various send count values set to 0...hangs.
This is allowed by the standard, but be warned that it is likely to perform poorly compared to what could be done with point-to-point or one-sided operations if most links are empty.