Purpose
Performs a nonblocking barrier operation.
C synopsis
#include <mpi.h> int MPE_Ibarrier(MPI_Comm comm,MPI_Request *request);
FORTRAN synopsis
include 'mpif.h' or use mpi MPE_IBARRIER(INTEGER COMM,INTEGER REQUEST,INTEGER IERROR)
Parameters
Description
This subroutine is a nonblocking version of MPI_BARRIER. It returns immediately, without blocking, but will not complete (via MPI_WAIT or MPI_TEST) until all group members have called it.
Notes
The MPE prefix used with this subroutine indicates that it is an IBM extension to the MPI standard and is not part of the standard itself. MPE routines are provided to enhance the function and the performance of user applications, but applications that use them will not be directly portable to other MPI implementations.
When it is expected that tasks will be reasonably synchronized, the blocking collective communication routines provided by standard MPI will commonly give better performance than the nonblocking versions.
A typical use of MPE_IBARRIER is to make a call to it, and then periodically test for completion with MPI_TEST. Completion indicates that all tasks in comm have arrived at the barrier. Until then, computation can continue.
The threads library has a limit of seven outstanding nonblocking collective calls. A nonblocking call is considered outstanding between the time the call is made and the time the wait is completed. This restriction does not apply to the signal library or to any call defined by the MPI standard.
Applications using nonblocking collective calls often perform best when they run in interrupt mode.
When you use this subroutine in a threads application, make sure all collective operations on a particular communicator are started in the same order at each task. See IBM Parallel Environment for AIX: MPI Programming Guide for more information on programming with MPI in a threads environment.
Errors
Related information