Singleton MPI_INIT (original) (raw)
Up: Other Functionality Next: MPI_APPNUM Previous: Universe Size
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_CONNECTroutines, 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_WORLDrequires 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_WORLDwith 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 MPImay not be able to work at all on the front-end of an MPP. In this case, an MPI implementation may either
1. Create the environment (e.g., start a daemon) or
2. Raise an error if it cannot create the environment and the environment has not been started independently.
A high-quality implementation will try to create a singleton MPI process and not raise an error.
( End of advice to implementors.)
Up: Other Functionality Next: MPI_APPNUM Previous: Universe Size
Return to MPI-3.1 Standard Index
Return to MPI Forum Home Page
(Unofficial) MPI-3.1 of June 4, 2015
HTML Generated on June 4, 2015