Open MPI logo

Open MPI Development Mailing List Archives

  |   Home   |   Support   |   FAQ   |   all Development mailing list

Subject: Re: [OMPI devel] failure with zero-length Reduce() andbothsbuf=rbuf=NULL
From: Lisandro Dalcin (dalcinl_at_[hidden])
Date: 2010-02-10 11:59:07


On 10 February 2010 13:42, Eugene Loh <Eugene.Loh_at_[hidden]> 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