Reputation: 34550
How can my MPI program detect, if it was launched as a standalone application or via mpirun?
Upvotes: 7
Views: 2826
Reputation: 6965
There is no MPI standard way to tell the difference between an MPI application that is launched directly, or as a single rank with mpirun. See "Singleton MPI_Init" for more on this kind of MPI job.
The environment variable checking answer from Douglas is a reasonable hack...but is not portable to any other MPI implementation.
Upvotes: 2
Reputation: 10946
Considering the answer and comments by semiuseless and Hristo Iliev, there is no general and portable way to do this. As a workaround, you can check for environment variables that are set by mpirun. See e.g.:
http://www.open-mpi.org/faq/?category=running#mpi-environmental-variables
Upvotes: 2