I'd like to get clarification on a few issues.
You give a few arguments in favor:
- "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?
- "This supports library writers..." Why can't library writers
pass information through 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.
- 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.
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? :-)
So I argue against on the grounds that it doesn't solve any
problems and may introduce new ones.