Parallel Programming Guide for HP-UX Systems

MPI
Debugging
Chapter 264
bnone
[#>0]
The same as b[#] except that the buffer is flushed both when it is full and
when it is found to contain any data. Essentially provides no buffering from
the user’s perspective.
bline
[#>0]
Displays the output of a process after a line feed is encountered, or the #
byte buffer is full.
The default value of
#
in all cases is 10k bytes
The following option is available for prepending:
p Enables prepending. The global rank of the originating process is prepended
to stdout and stderr output. Although this mode can be combined with any
buffering mode, prepending makes the most sense with the modes b and
bline.
The following option is available for combining repeated output:
r
[#>1]
Combines repeated identical output from the same process by prepending a
multiplier to the beginning of the output. At most, # maximum repeated
outputs are accumulated without display. This option is used only with
bline. The default value of # is infinity.
Completing
In HP MPI, MPI_Finalize is a barrier-like collective routine that waits until all application
processes have called it before returning. If your application exits without calling
MPI_Finalize, pending requests may not complete.
When running an application, mpirun waits until all processes have exited. If an application
detects an MPI error that leads to program termination, it calls MPI_Abort instead.
You may want to code your error conditions using MPI_Abort, which cleans up the application.
Each HP MPI application is identified by a job ID, unique on the server where mpirun is
invoked. If you use the -j option, mpirun prints the job ID of the application that it runs.
Then, you can invoke mpijob with the job ID to display the status of your application.
If your application hangs or terminates abnormally, you can use mpiclean to kill any
lingering processes and shared-memory segments. mpiclean uses the job ID from mpirun -j
to specify the application to terminate.