Thanks for the comments.
I think I'm convinced that we don't need to distinguish between an MPI
and non-MPI program. By not distinguishing, we preclude the use of
command line arguments to start up MPI, which I'm comfortable
with, but I'm not sure about MPI developers. The (argc,argv)
arguments to MPI_Init() indicate to me (I didn't hear the original
debate) that it was decided that it is important to be able to make
use of command-line arguments. Comments from developers?
(Incidentally, many users would be very happy if we could
eliminate the requirement to pass (argc, argv) and pass
(0,NULL) instead. ).
I still believe we need to distinguish between children that
will be ATTACHed or orphaned. The difference is whether
MPI_Comm_parent() synchronizes with MPI_Attach() in the
parent or returns MPI_COMM_NULL. A lot of current PVM
codes rely on being able to tell whether a process is
a future parent or a child by calling pvm_parent(). I
think this is useful. I think it is also necessary if we
envision a parallel environment written in MPI, where
a general process starter will never want to ATTACH its
children.
Bill