As someone has already said, mpirun is not part of the MPI-1 standard
and we therefore cannot specify what an MPI function does with and
without it.
The RS6000/SP version of MPI is part of the Parallel Environment and the
decision that a program is a potential MPI program is made at compile
time. The PE initialization logic becomes part of the executable and
the number of MPI tasks to create is decided at startup by means other
than mpirun. MPI_Init expects this number of tasks to participate.
Actually, any program which will be able to call MPI_Init must have been
envisioned as a potential MPI program at compile/bind time. If you were
willing to identify it as a potential MPI program at build time why not
also simply start it as a singleton MPI program by whatever means the
implementation provides and decide to call MPI_Init when and if you want
to do spawning. I do not think there is anything in MPI which requires
a program to call MPI_Init before/unless it wishes to use other MPI
calls. The paragraph on MPI_Init only says MPI_Init must preceed any
other MPI calls.
COMMENTS? - Would any implementation have a problem with a program which
was constructed and started as a (singleton) MPI program but which may
never call MPI_Init.....MPI_Finalize? I am assuming the program would
have some significant work to do even if it never choose to call
MPI_Init.
Regards - Dick
-- Dick Treumann POWER Parallel Systems (Internet) treumann@kgn.ibm.com IBM -- Poughkeepsie, NY (VNET) TREUMANN at KGNVMC Tel: (914) 433-7846 (internal) treumann@windsurf.kgn.ibm.com Fax: (914) 433-8363