HP-MPI User's Guide (11th Edition)
Introduction
MPI concepts
Chapter 16
Point-to-point communication
Point-to-point communication involves sending and receiving messages
between two processes. This is the simplest form of data transfer in a
message-passing model and is described in Chapter 3, “Point-to-Point
Communication” in the MPI 1.0 standard.
The performance of point-to-point communication is measured in terms
of total transfer time. The total transfer time is defined as
total_transfer_time = latency + (message_size/bandwidth)
where
latency Specifies the time between the initiation of the data
transfer in the sending process and the arrival of the
first byte in the receiving process.
message_size Specifies the size of the message in Mbytes.
bandwidth Denotes the reciprocal of the time needed to transfer a
byte. Bandwidth is normally expressed in Mbytes per
second.
Low latencies and high bandwidths lead to better performance.
Communicators
A communicator is an object that represents a group of processes and
their communication medium or context. These processes exchange
messages to transfer data. Communicators encapsulate a group of
processes such that communication is restricted to processes within that
group.
The default communicators provided by MPI are MPI_COMM_WORLD and
MPI_COMM_SELF. MPI_COMM_WORLD contains all processes that are
running when an application begins execution. Each process is the single
member of its own MPI_COMM_SELF communicator.
Communicators that allow processes within a group to exchange data are
termed intracommunicators. Communicators that allow processes in two
different groups to exchange data are called intercommunicators.
Many MPI applications depend upon knowing the number of processes
and the process rank within a given communicator. There are several
communication management functions; two of the more widely used are
MPI_Comm_size and MPI_Comm_rank. The process rank is a unique