On Jan 23, 2009, at 6:32 AM, Gabriele Fatigati wrote:
I've noted that OpenMPI has an asynchronous behaviour in the
collective calls.
The processors, doesn't wait that other procs arrives in the call.
That is correct.
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.
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 (and it's a
fairly weak guarantee at that; no process will exit the barrier until
every process has entered the barrier -- but there's no guarantee that
all processes leave the barrier at the same time).
Why do you need your processes to exit collective operations at the
same time?
--
Jeff Squyres
Cisco Systems