MPI-3 introduced support for non-blocking collective communication functions. Readers unfamiliar with the difference between blocking and non-blocking communication may refer to the Point-to-Point Communication roadmap. Each blocking collective communication routine now has a non-blocking analog, and the conventions followed for the names and function signatures are identical to those followed for point-to-point communication. Thus, a non-blocking call has the same syntax as its blocking counterpart, with two differences:

  1. The letter II (think of "initiate" or "immediate") appears in the name of the call, immediately following the first underscore: e.g., MPI_Ibcast.
  2. The final argument is a handle to an opaque (or hidden) request object that holds detailed information about the transaction. The request handle can be used for subsequent Wait and Test calls.

Most supercomputing environments will include an MPI-3 implementation as the default MPI module. Older or newer versions may be available as optional modules. HPC systems that implement the module system provide instructions on how to locate, inspect and load modules in their respective user guides.

The exact versions may be different on your system, and if you are not using Linux modules, manual configuration of environment variables may be necessary. Also, note that some MPI installations may depend on specific compilers as well, so the correct compiler module may need to be swapped first.

 
©  |   Cornell University    |   Center for Advanced Computing    |   Copyright Statement    |   Access Statement
CVW material development is supported by NSF OAC awards 1854828, 2321040, 2323116 (UT Austin) and 2005506 (Indiana University)