I just added a new command line option and changed the behavior of
orterun with respect to MCA paramters to behave more the way one would
expect. See my commit message below from r6764 for details.
Begin forwarded message:
Author: jsquyres
Date: 2005-08-08 11:42:28 -0500 (Mon, 08 Aug 2005)
New Revision: 6764
Modified:
trunk/ompi/tools/ompi_info/ompi_info.cc
trunk/opal/mca/base/base.h
trunk/opal/mca/base/mca_base_cmd_line.c
trunk/orte/tools/orterun/orterun.c
Log:
Fix a problem where orterun itself would not receive MCA parameters
that were set on the command line. This was techinically exactly the
way the code was designed, but it certainly violated the Law of Least
Astonishment (even to its designer ;-) ). So now if you execute
something like this:
mpirun -mca pls_rsh_debug 1 -np 4 hello
You'll see debugging output from the rsh pls component, as you would
expect (this was not previously the case -- the MCA pls_rsh_debug
parame would be set to 1 in the 4 spawned hello processes, but *not*
in the orterun process).
More specifically, MCA parameters will be set in the orterun process
in the following cases:
- The new command line switch "--gmca" (or "-gmca") is used,
indicating that the MCA parameter is "global". --gmca also means
that that MCA parameter will be applied to all context app's. For
example:
mpirun -gmca foo bar -np 1 hello : -np 2 goodbye
The foo MCA param will be set in both the hello and goodbye
processes.
- If there is only one context app. For example:
mpirun -mca pls_rsh_debug 1 -np 4 hello
will set pls_rsh_debug to 1 in both the orterun process and the 4
spawned hello processes.
Also added a few more comments inside orterun to document a somewhat
confusing use of a state variable in a recursive case.
--
{+} Jeff Squyres
{+} The Open MPI Project
{+} http://www.open-mpi.org/