I have developed a C++-based MPI application that is uses the MPI_Comm_spawn library routine to start a set of child applications that do various data calculations, and communicate status information back to the parent. Only one instance of the parent is needed (and more than one is caught as an error).
To start the parent application, I am currently using the command:
mpiexec -np 1 ParentApp <args> -n <numChild>
where <numChild> is the number of child applications that are spawned by the parent application (via MPI_Comm_spawn).
For numerous reasons, I'd like to be able to reduce the application startup command to:
ParentApp <args> -n <numChild>
What extra C++ code can I add into my ParentApp source that will internally invoke whatever is being done by the 'mpiexec' launcher?