Parallel Programming Guide for HP-UX Systems

MPI
Debugging
Chapter 258
Message signature analysis—Detects type mismatches in MPI calls. For example, in the
two calls below, the send operation sends an integer, but the matching receive operation
receives a
floating-point number.
if (rank == 1) then
MPI_Send(&buf1, 1, MPI_INT, 2, 17, MPI_COMM_WORLD);
else if (rank == 2)
MPI_Recv(&buf2, 1, MPI_FLOAT, 1, 17, MPI_COMM_WORLD,
&status);
MPI object-space corruption—Detects attempts to write into objects such as MPI_Comm,
MPI_Datatype, MPI_Request, MPI_Group, and MPI_Errhandler.
Multiple buffer writes—Detects whether the data type specified in a receive or gather
operation causes MPI to write to a user buffer more than once.
To disable these checks or enable formatted or unformatted printing of message data to a file,
set the MPI_DLIB_FLAGS environment variable options appropriately.
To use the diagnostics library, specify the -ldmpi option when you compile your application.
NOTE Using DLIB reduces application performance. DLIB is not thread-compliant.
Also, you cannot use DLIB with instrumentation.
Enhanced debugging output
HP MPI 2.0 provides improved readability and usefulness of MPI processes stdout and stderr.
More intuitive options have been added for handling standard input:
Directed: Input is directed to a specific MPI process.
Broadcast: Input is copied to the stdin of all processes.
Ignore: Input is ignored.
The default behavior is standard input is ignored.
Additional options are available to avoid confusing interleaving of output:
Line buffering, block buffering, or no buffering
Prepending of processes ranks to their stdout and stderr
Simplification of redundant output