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. Nonblocking collective communication routines allow for increased efficiency and flexibility in some applications. Because these routines do not synchronize the participating tasks like blocking collective routines generally do, tasks running at different speeds do not waste time waiting for each other. 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.
Applications using nonblocking collective calls often perform best when they run in interrupt mode.
When you use this routine in a threaded application, make sure all collective operations on a particular communicator are started in the same order at each task. See Appendix G for more information on programming with MPI in a threaded environment. All rights reserved.