Parallel Programming Guide for HP-UX Systems

MPI
Debugging
Chapter 2 59
Backtrace functionality
HP MPI 2.0 handles several common termination signals differently than earlier versions of
HP MPI. If any of the following signals are generated by an MPI application, a stack trace is
printed prior to termination:
SIGBUS - bus error
SIGSEGV - segmentation violation
SIGILL - illegal instruction
SIGSYS - illegal argument to system call
The backtrace is helpful in determining where the signal was generated and the call stack at
the time of the error. If a signal handler is established by the user code before calling
MPI_Init, no backtrace will be printed for that signal type and the user’s handler will be
solely responsible for handling the signal. Any signal handler installed after MPI_Init will
also override the backtrace functionality for that signal after the point it is established. If
multiple processes cause a signal, each of them will print a backtrace.
In some cases, the prepending and buffering options available in HP MPI 2.0’s standard IO
processing are useful in providing more readable output.
The default behavior is to print a stack trace.
Backtracing can be turned off entirely by setting the environment variable MPI_NOBACKTRACE.
Backtracing is only supported on HP PA-RISC systems.
Troubleshooting HP MPI applications
This section describes limitations in HP MPI, some common difficulties you may face, and
hints to help you overcome those difficulties and get the best performance from your HP MPI
applications. Check this information first when you troubleshoot problems. The topics covered
are organized by development task and also include answers to frequently asked questions:
Building
Starting
Running
Completing
To get information about the version of HP MPI installed on your system, use the what
command. The following is an example of the command and its output:
% what $MPI_ROOT/bin/mpicc