The mpimsg command displays information on buffered messages which were sent using the MPI library and
are currently buffered on the specified nodes and destined to the specified processes. mpimsg typically
only works when the "daemon" mode of communication is used; it cannot be used to monitor "client to
client" (C2C) communications.
With no processes or nodes explicitly specified on the command line, all MPI messages on all nodes are
reported.
% mpimsg
SRC (G/L) DEST (G/L) TAG COMM COUNT DATATYPE MSG
0/0 1/1 123 WORLD 64 INT n1,#0
For each message mpimsg outputs the following information:
SRC an identification of the source process - A `/' followed by the process's rank within the
message's communicator is also displayed. See mpitask(1) for a discussion of process
identification.
DEST an identification of the destination process
TAG the tag from the message envelope
COMM the communicator identifier
COUNT the number of data elements in the message
DATATYPE the element datatype
MSG the message identifier - It is expressed in the form nnodeid,#seqnum, where nodeid is the
physical location of the buffered message and seqnum is a sequence number assigned to the
message by LAM. These values are used to get further information on the communicator,
datatype or message contents.
More detailed information on the message's communicator or datatype can be obtained with the -c or -d op‐
tions. The information is the same as obtained by mpitask(1) regarding processes. Unlike mpitask(1),
these options in mpimsg require a message identifier to isolate a single message. Keep in mind that
mpimsg invocations are snapshots of system status. It is possible that a buffered message shown in a
call of mpimsg may be received prior to a subsequent call to mpimsg made in order to display further in‐
formation. In this case nothing is printed.
MessageContents
If the -m option is given then the contents of the specified message are displayed.
First the destination process identification and the message identification is printed and then the mes‐
sage contents are printed in a format somewhat similar to that produced by the UNIX utility od(1). On
the left hand side of each line the offset from the beginning of the data buffer is printed in hexadeci‐
mal. After that individual elements are printed according to their type as deduced from the type signa‐
ture. Holes in the datatype and changes in basic type force newlines in the output so in effect all ele‐
ments on the same line of output are actually contiguous in the buffer and of the same basic type.
The amount of a message that is to be printed can be limited with the -e option. The limit is specified
in terms of a maximum number of elements of a basic datatype that are to be printed. For example if a
message consists of 100 structures with each structure containing three integers, then a limit of 20
would result in the display of the first 20 integers in the message, as opposed to the first 20 struc‐
tures (or 60 integers).
Buffered message data is by default stored in LAM representation and will be converted to local represen‐
tation for display. In the case of a homogeneous LAM and MPI processes run with the -O switch to
mpirun(1) message data will be stored in the common local representation of the machines in the LAM. In
this case when using the -m option the -O switch can be given in order to prevent the data conversion for
display.