Re: MPI_INFO / Amendment

Rolf Rabenseifner (Rabenseifner@RUS.Uni-Stuttgart.DE)
Thu, 6 Feb 1997 15:37:06 +0100 (MEZ)

Bill,

> - "It is the usual practice in Unix that applications can
> examine how they were started. " It is? I assume you mean
> through argv/argc, which are already provided to an MPI
> application. Is there something else? What information
> about "how the application was started" could possibly
> be of interest to the child?

e.g. the value to the key "path" to find addional files
on this directory
or "soft" to compare the user's wish with the comm_size

> - "This supports library writers..." Why can't library writers
> pass information through argv/argc?

argv/argc is reserved for parameter input for the application
program.
Similar to the argument, that MPI itself must not add additional
arguments on this list, it may be forbidden for libraries to add
something here.
In other words, if a library uses MPI_SWAWN and adds something to
argv/argc then it has to remove it before the spawned application
accesses argv/argc.

> Seems to me that the
> explicit intent of the info argument to spawn() is to
> tell the implementation environment-specific details of
> how to spawn, not to pass information to the child, and
> the explicit intent of the "argv" argument is to pass information
> to the child. Seems like it would be dangerous to overload both
> functions in the info argument. Perhaps we should have used a
> second MPI_INFO to pass information instead of the argument list?
> That's another issue and another proposal.

I agree, that a precise review must require to separate the two
needs, but a compromise can put these two needs together
to prevent an additional dummy argument in MPI_SPAWN and an
additional option in mpiexec.

> - You mention that this removes the hack of adding/deleting
> things from argc/argv. How does the proposal do this?
> I don't see that it changes argc/argv behavior.

No, it does not change the argc/argv behavior.
But if one must use argc/argv instead of the info argument,
then one must use the hack to delete afterwards the additional
information from argc/argv.
You can see this hack in many mpi implementation if you compare
argv/argc before and after calling MPI_Init.

> Finally, in the (hopefully rare) case where the original info
> argument in SPAWN contains a password, it's not clear to me
> that the child should get this under any circumstances. To
> make a real world analogy, how many people on this list have
> asked their parents for details on the SPAWN process? :-)

That is a real problem.

I propose to add:
"MPI implementations may remove info arguments that they use
while starting or spawning MPI processes (e.g. passwords).
The removal must be documented."

> So I argue against on the grounds that it doesn't solve any
> problems and may introduce new ones.

I hope the new one is solved with this modification.

Rolf


Rolf Rabenseifner (Computer Center )
Rechenzentrum Universitaet Stuttgart (University of Stuttgart)
Allmandring 30 Phone: ++49 711 6855530
D-70550 Stuttgart 80 FAX: ++49 711 6787626
Germany rabenseifner@rus.uni-stuttgart.de