CSC 5001– High Performance Systems

Portail informatique

MPI - Documentation

The complete documentation of the API is available here. tasks tasks

Initialisation/terminaison

MPI_Init Initialize the MPI execution environment.
MPI_Init_thread Initialize the MPI execution environment
MPI_Finalize Terminates MPI execution environment
MPI_Comm_rank Determines the rank of the calling process in the communicator
MPI_Comm_size Determines the size of the group associated with a communicator
MPI_Wtime Returns an elapsed time on the calling processor

Point-to-point communication

Sending

MPI_Send Performs a blocking send
MPI_Ssend Performs a blocking synchronous send
MPI_Isend Performs a nonblocking send
MPI_Issend Performs a nonblocking synchronous send

Receiving messages

MPI_Recv Performs a blocking Recv
MPI_Irecv Performs a nonblocking Recv

Collective communication

Blocking collective communication

MPI_Barrier Blocks until all process have reached this routine.
MPI_Bcast Broadcasts a message from the process with rank "root" to all other processes of the group.
MPI_Gather Gathers together values from a group of processes
MPI_Scatter Sends data from one task to all other tasks in a group
MPI_Reduce Reduces values on all processes to a single value
MPI_Alltoall Sends data from all to all processes
MPI_Allgather - Gathers data from all tasks and distribute it to all
MPI_Reduce_scatter Combines values and scatters the results
MPI_Allreduce Combines values from all processes and distribute the result back to all processes

Non-blocking collective communication

MPI_Ibarrier MPI_Ibarrier Notifies the process that it has reached the barrier and returns immediately.
MPI_Ibcast Broadcasts a message from the process with rank "root" to all other processes of the communicator in a nonblocking way .
MPI_Igather Gathers together values from a group of processes in a nonblocking way
MPI_Iscatter Sends data from one process to all other processes in a communicator in a nonblocking way
MPI_Ireduce Reduces values on all processes to a single value in a nonblocking way
MPI_Ialltoall Sends data from all to all processes in a nonblocking way
MPI_Iallgather Gathers data from all tasks and distribute the combined data to all tasks in a nonblocking way
MPI_Ireduce_scatter Combines values and scatters the results in a nonblocking way
MPI_Iallreduce Combines values from all processes and distributes the result back to all processes in a nonblocking way

Communication completion

Waiting for a communication completion

MPI_Wait Waits for an MPI request to complete
MPI_Waitall Waits for all given MPI Requests to complete
MPI_Waitany Waits for any specified MPI Request to complete

Testing for a communication completion

MPI_Test Tests for the completion of a request
MPI_Testall Tests for the completion of all previously initiated requests
MPI_Testany Tests for completion of any previdously initiated requests