MPI_COMM_SIZE(comm, size)
IN comm communicator
OUT size number of processes in the group of comm

MPI_Comm_size(MPI_Comm comm, int *size)

MPI_COMM_SIZE(COMM, SIZE, IERROR)INTEGER COMM, SIZE, IERROR

MPI_COMM_SIZE returns the size of the group associated with
comm.

This function indicates the number of processes involved in an
intracommunicator.
For MPI_COMM_WORLD, it indicates the total number of processes
MPI_COMM_WORLD
available at initialization time. (For this version of MPI,
this is also the total number of processes available throughout the
computation).

MPI_Comm_rank(MPI_Comm comm, int *rank)

MPI_COMM_RANK(COMM, RANK, IERROR)INTEGER COMM, RANK, IERROR

MPI_COMM_RANK indicates the rank of the process
that calls it, in the range from 0...size-1, where
size is the return value of MPI_COMM_SIZE.
This rank is relative to the group associated with the intracommunicator
comm. Thus,
MPI_COMM_RANK(MPI_COMM_WORLD,
rank) returns in rank the ``absolute'' rank of the calling
process in the global communication group of
MPI_COMM_WORLD;
MPI_COMM_RANK( MPI_COMM_SELF,
rank) returns rank = 0.

MPI_COMM_COMPARE is used to find the relationship between
two intra-communicators. MPI_IDENT results if and only if
MPI_IDENT
comm1 and comm2 are handles for the same object
(representing the same communication domain).
MPI_CONGRUENT results if the underlying groups are identical
MPI_CONGRUENT
in constituents and rank order (the communicators
represent two distinct communication domains with the same group attribute).
MPI_SIMILAR results if the group members of both
MPI_SIMILAR
communicators are the same but the rank order
differs. MPI_UNEQUAL results otherwise. The groups
MPI_UNEQUAL
associated with two different communicators could be gotten via
MPI_COMM_GROUP and then used in a call to
MPI_GROUP_COMPARE. If MPI_COMM_COMPARE gives
MPI_CONGRUENT then MPI_GROUP_COMPARE will give
MPI_IDENT. If MPI_COMM_COMPARE gives
MPI_SIMILAR then MPI_GROUP_COMPARE will give
MPI_SIMILAR.