[mpich-devel] detecting mpirun mismatch

Jeff Hammond jeff.science at gmail.com
Tue Apr 22 16:58:55 CDT 2014


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 <balaji at anl.gov> 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 <jeff.science at gmail.com> 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
>> jeff.science at gmail.com
>



-- 
Jeff Hammond
jeff.science at gmail.com


More information about the devel mailing list