PMI is specific to MPICH-family, right? The problem that was observed had to do with MPICH/OpenMPI mixing. 'mpirun -np 2' led to two copies of the application running in serial... If PMI implementations are version specific, should they not export PMI_VERSION to the environment so bad pairings can be detected? Thanks, Jeff On Tue, Apr 22, 2014 at 4:52 PM, Balaji, Pavan <[email protected]> wrote:
Jeff,
Do you need to know if it’s Hydra or if it’s a PMI server? Any PMI server can work with any PMI client. Ideally, they’ll negotiate on the PMI version to use, but a bad client/server might assume a particular version.
You can make sure it’s a PMI server by checking for PMI environment variables. Either PMI_FD or PMI_PORT will need to be set.
— Pavan
On Apr 22, 2014, at 4:48 PM, Jeff Hammond <[email protected]> wrote:
Does anyone know of a good way to detect when the user has built an MPI application with mpicc from implementation A and tries to launch with mpirun/mpiexec from implementation B?
I know that inside of the application, I can use either MPI_Get_library_version or preprocessor info to know what implementation I am using. But can I discover anything about mpirun inside of the application? Is there anything in the environment that I can query to know if my PM is Hydra, for example? If not, can that be added?
This is a relatively common user error that leads to very bad things in some cases so it would be nice to be able to detect it and throw a warning/error.
Thanks,
Jeff
-- Jeff Hammond [email protected]
-- Jeff Hammond [email protected]