A high-quality implementation will allow any process (including those not started with a ``parallel application'' mechanism) to become an MPI process by calling MPI_INIT. Such a process can then connect to other MPI processes using the MPI_COMM_ACCEPT and MPI_COMM_CONNECT routines, or spawn other MPI processes. MPI does not mandate this behavior, but strongly encourages it where technically feasible.
Advice
to implementors.
To start MPI processes belonging to the same MPI_COMM_WORLD
requires some special coordination. The processes
must be started at the ``same'' time, they must
have a mechanism to establish communication, etc.
Either the user or the operating system must take special
steps beyond simply starting processes.
When an application enters MPI_INIT, clearly
it must be able to determine if these special steps
were taken.
If a process enters MPI_INIT and determines
that no special steps were taken (i.e., it has not been given
the information to form an MPI_COMM_WORLD
with other processes) it succeeds and forms
a singleton MPI program, that is, one in which
MPI_COMM_WORLD has size 1.
In some implementations, MPI may not be able to
function without an `` MPI environment.'' For example,
MPI may require that daemons be running or MPI
may not be able to work at all on the front-end
of an MPP. In this case, an MPI implementation may
either
( End of advice to implementors.)
1. Create the environment (e.g., start a daemon) or
A high-quality implementation will try to create
a singleton MPI process and not raise an error.
2. Raise an error if it cannot create the environment
and the environment has not been started independently.
![]()
![]()
![]()
Up: Other Functionality
Next: MPI_APPNUM
Previous: Universe Size
Return to MPI-2.1 Standard Index
Return to MPI Forum Home Page
MPI-2.0 of July 1, 2008
HTML Generated on July 6, 2008