On 10 February 2010 13:42, Eugene Loh <eugene....@sun.com> wrote: > Here is a related case. > > If I remember correctly, the HPCC pingpong test synchronizes occasionally by > having one process send a zero-byte broadcast to all other processes. > What's a zero-byte broadcast? Well, some MPIs apparently send no data, but > do have synchronization semantics. (No non-root process can exit before the > root process has entered.) Other MPIs treat the zero-byte broadcasts as > no-ops; there is no synchronization and then timing results from the HPCC > pingpong test are very misleading. So far as I can tell, the MPI standard > doesn't address which behavior is correct.
Yep... for p2p communication things are more clear (and behavior more consistens in the MPI's out there) regarding zero-length messages... IMHO, collectives should be non-op only in the sense that no actual reduction is made because there are no elements to operate on. I mean, if Reduce(count=1) implies a sync, Reduce(count=0) should also imply a sync... > The test strikes me as > deficient: it would have been just as easy to have a single-word broadcast > to implement the synchronization they were looking for. > Or use MPI_Barrier() ... -- Lisandro Dalcin --------------- Centro Internacional de Métodos Computacionales en Ingeniería (CIMEC) Instituto de Desarrollo Tecnológico para la Industria Química (INTEC) Consejo Nacional de Investigaciones Científicas y Técnicas (CONICET) PTLC - Güemes 3450, (3000) Santa Fe, Argentina Tel/Fax: +54-(0)342-451.1594