When it is expected that tasks will be reasonably synchronized, the blocking collective communication routines provided by standard MPI will commonly give better performance then the nonblocking versions. The nonblocking collective routines can be used in conjunction with the MPI blocking collective routines and can be completed by any of the MPI wait or test functions. 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 routine in a threads application, make sure all collective operations on a particular communicator are started in the same order at each task. MPI Programming Guide for more information on programming with MPI in a threads environment.