Comparing: Point-to-point communication

Point-to-point communication MPI

All MPI communications require a communicator argument and MPI processes can only communicate if they share a communicator.

A communicator in simple terms comprises a process group, context, and other attributes.

A group is a list of processes. The processes are ordered and numbered consecutively from 0, the number of each process is its rank.

To send a message a source process makes an MPI call that specifies the rank of the destination process. The destination process must make a corresponding MPI call to receive the message.

Communication modes in MPI

There are four communication modes provided by MPI: These modes refer to the types of send and it is not meaningful to talk of communication in the context of receive.

Sending point-to-point messages in PVM

Sending a message in PVM involves three steps.

Initializing the SEND buffer

The routine
pvmfinitsend(encoding, bufid)
clears the default send buffer and prepares it for packing a new message.
integer specifying the next message's encoding scheme.
integer returned containing the message buffer identifier. Values less than zero indicate an error.

Packing the SEND buffer

The routine
pvmfpack(what, xp, nitem, stride, info)
packs an array of a given data type into the active send buffer.
integer specifying the type of data being packed.
Pointer to the beginning of a block of bytes.
The total number of items to be packed.
The stride to be used when packing items.
Integer status code returned by routine. Values less than zero indicate an error.

Sending messages

The routine
sends a message stored in the active buffer to the PVM process identified by tid.
task indentifier of destination process.
integer message tag supplied by the user.
integer status code returned by the routine.

Receiving point-to-point messages in PVM

Receiving a message involves two steps. PREVIOUS NEXT
Submitted by Mark Johnston,
last updated on 10 December 1994.