To follow up on this thread --
Now that 1.0 is out the door, I went back and implemented this prior
suggestion (about making it easier to launch Open MPI under debuggers
other than TotalView -- see original text below). This is only
implemented on the trunk, meaning that it will be in the 1.1 series; it
will not be in any 1.0.x release.
The MCA parameter that contains the list of debuggers to search is
orte_base_user_debugger. It currently defaults to:
totalview @mpirun@ -a @mpirun_args@ : fx2 @mpirun@ -a @mpirun_args@
where @mpirun@ and @mpirun_args@ are substituted at run-time. We can
certainly add more debuggers to the default value, if desired. Local
users can, of course, override the default with any of the usual MCA
parameter-setting mechanisms (files, environment variables,
command-line parameters).
The mpirun option -tv is hereby deprecated and is now simply a synonym
for --debug (i.e., it won't go away because of the precedent set in the
1.0.x series).
On Oct 20, 2005, at 4:26 PM, Jeff Squyres wrote:
You and Chris G. raise a good point -- another parallel debugger vendor
has contacted me about the same issue (their debugger does not have an
executable named "totalview"). In off-list iterations with him, we
decided on some kind of format like:
mpirun [--debugger <name>] --debug ..
The intent here is to make the common case easy for the user, but also
allow flexibility in which back-end debugger is invoked.
First -- the common case:
mpirun --debug -np 4 a.out
Will invoke whatever back-end debugger the user has with the proper
argv
to get mpirun and "-np -4 a.out" passed back to it.
--debugger is a synonym for an MCA parameter, so it can be set in a
variety of ways (e.g., command line, environment variable, or in a
file). The string parameter for --debugger can specify multiple
different debuggers (and associated command lines -- with string
substitution -- to invoke those debuggers); OMPI's mpirun will search
for the first debugger that it can find in the current PATH and invoke
it. For example, we'll probably have a default value for --debugger
something like:
"totalview mpirun -a @mpirun_args@ : fx2 mpirun -a @mpirun_args"
and assume that the user invoked
mpirun --debug -np 4 a.out
This would tell OMPI's mpirun to first search for "totalview" in the
current $PATH. If it doesn't find it, then search for "fx2" in the
$PATH. If it is found, mpirun will exec "fx2 mpirun -a -np 4 a.out".
And, of course, anyone can override that default value (and we're open
to adding more -- TV and FX2 are the only ones that I'm aware of at the
moment).
Also, this only works well for cases where we want to exec a new
application to invoke the debugger. Specifically, using "--debug" to
start under TV and FX2 is simply syntactic sugar for invoking it
yourself, but we've found that users tend to like this.
--
{+} Jeff Squyres
{+} The Open MPI Project
{+} http://www.open-mpi.org/