MPI Library Reference


Message Passing

<< Preliminaries | Table of Contents | Message Passing Non-blocking >>
(:begfnct mpi_bcast:)

int MPI_Bcast( void *buf, int count, MPI_Datatype datatype,

int srcPid, MPI_Comm comm )

(:endfnct:)

(:begfnct mpi_send:)

int MPI_Send( void *buf, int count, MPI_Datatype datatype,

int destPid, int tag, MPI_Comm comm )

(:endfnct:)

(:begfnct mpi_recv:)

int MPI_Recv( void *buf, int count, MPI_Datatype datatype,

int srcPid, int tag, MPI_Comm comm, MPI_Status *status )
srcPid
The id of the process from whom you want to receive a message. This can be set to MPI_ANY_SOURCE to receive a message from any process within the give communications group.
tag
A code indicating the type of message to be received. This can be set to MPI_ANY_TAG to receive a message with any type of tag associated with it.

(:endfnct:)

(:begfnct mpi_reduce:)

int MPI_Reduce( void *sendbuf, void *recvbuf, int count,

MPI_Datatype datatype, MPI_Op op, int destPid, MPI_Comm comm )

(:endfnct:)

(:begfnct mpi_probe:)

int MPI_Probe( int srcPid, int tag, MPI_Comm comm, MPI_Status *status );

Blocks and waits for a message with the given data tag from the indicated process. The function does not actually receive the message. It can be used in conjunction with MPI_Get_count().

srcPid
the id of the process from which you are waiting for a message.
tag
the tag associated with the type of message for which you are waiting.
comm
the communications group being probed.
status
address of a struct into which information related to the message can be stored.

(:endfnct:)

(:begfnct mpi_getcount:)

int MPI_Get_count( MPI_Status *status, MPI_Datatype datatype, int *count )

Determines the number of data items contained in a message just received or the next message to be received. This function is used with either MPI_Recv() or MPI_Probe().

status
the address of the MPI_Status struct filled in by either the MPI_Recv() or MPI_Probe() function.
datatype
the type of data items being received.
count
the address of an integer variable into which the number of items received is stored.

The following code segment illustrates the use of this function

(:source lang=cpp:)
MPI_Status msgStatus;
int numItems;

MPI_Probe( ROOT_PROC, DATA_TAG, MPI_COMM_WORLD, &msgStatus );
MPI_Get_count( &msgStatus, MPI_DOUBLE, &numItems );



<< Preliminaries | Table of Contents | Message Passing Non-blocking >>

Print - Changes - Search
Last modified: May 07, 2007, at 01:45 PM.