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/

Reply via email to