Lab 11 - Communication and Synchronization Functions in MPI
๐๏ธ Non-blocking Functions
So far in the MPI laboratories, you have worked with blocking communication functions (MPISend, MPIRecv). In blocking communication, send and receive functions block until the buffer used for message transmission can be reused, specifically:
๐๏ธ Other messaging functions
MPISsend and MPIIssend
๐๏ธ Distributed Barrier
In MPI, there is the concept of a barrier, which is similar in functionality to that in pthreads and Java threads. Specifically, the barrier in MPI ensures that no process within the communicator can proceed beyond the point where the barrier is placed until all processes in the communicator reach that point.
๐๏ธ Structures in MPI
In MPI we can exchange struct type data. We can do this by first creating a new MPI data type (MPI_Datatype), using MPI_Type_create_struct to which we specify the number of fields of each type and their size in the structure, the placement of the fields in memory (using offsets and MPI_Aint).
๐๏ธ Exercises
Lab Skeleton