On Fri, 2009-01-23 at 06:51 -0500, Jeff Squyres wrote:
> > This behaviour sometimes can cause some problems with a lot of
> > processors in the jobs.
> Can you describe what exactly you mean? The MPI spec specifically
> allows this behavior; OMPI made specific design choices and
> optimizations to support this behavior. FWIW, I'd be pretty surprised
> if any optimized MPI implementation defaults to fully synchronous
> collective operations.
As Jeff says the spec encourages the kind of behaviour you describe. I
have however seen this causing problems in applications before and it's
not uncommon for adding barriers to improve the performance of a
application. You might find that it's better to add barriers after
every N collectives rather than every single collective.
> > Is there an OpenMPI parameter to lock all process in the collective
> > call until is finished? Otherwise i have to insert many MPI_Barrier
> > in my code and it is very tedious and strange..
> As you have notes, MPI_Barrier is the *only* collective operation that
> MPI guarantees to have any synchronization properties
AllGather, AllReduce and AlltoAll also have an implicit barrier by
virtue of the dataflow required, all processes need input from all other
processes before they can return.