Okay, so this has nothing to do with the internal pmix or the pmi-1/2 headers 
it provides, which is what confused me. You are building the SLURM pmi support 
for OMPI, which does indeed use the slurm-provided headers and pmi libraries.

Someone can take a look at that as it should check first in the given 
directory, and then in the include subdir. However, you might also then need to 
specify --with-pmi-libdir to find the libraries.


> On Sep 2, 2017, at 9:37 AM, Phil K <pkde...@yahoo.com> wrote:
> 
> The issue is getting through the OMPI configure without error which you   
> _cannot_ when using --with-pmi=/usr/include/slurm if pmi.h and pmi2.h are 
> installed *only* in /usr/include/slurm.
> 
> 
> On Saturday, September 2, 2017 9:55 AM, "r...@open-mpi.org" 
> <r...@open-mpi.org> wrote:
> 
> 
> I’m honestly confused by this as I don’t understand what you are trying to 
> accomplish. Neither OMPI nor PMIx uses those headers. PMIx provides them just 
> as a convenience for anyone wanting to compile a PMI based code, and so that 
> we could internally write functions that translate from PMI to the equivalent 
> PMIx calls.
> 
> So you can compile your code with -any- PMI header you want - so long as you 
> then link your code to a PMIx library, it doesn’t matter if that header 
> differs somewhat from the one we use. All that matters is that any function 
> call you use matches the one we wrote against. We took ours directly from the 
> MPICH official ones.
> 
> Ralph
> 
>> On Sep 1, 2017, at 10:08 PM, Phil K via devel <devel@lists.open-mpi.org 
>> <mailto:devel@lists.open-mpi.org>> wrote:
>> 
>> I just wanted to share a workaround I came up with for this openmpi 
>> configure issue.
>> 
>> When specifying header paths in configure, openmpi adds an /include subpath 
>> the --with-pmi specifier
>> (and others).  This is documented very clearly.  Recently, in switching over 
>> to internal pmix, I wanted to rip
>> out the pmix-provided pmi.h and pmi2.h development headers and use those 
>> supplied by slurm since openmpi
>> will link to the slurm-provided pmi libraries and I like to match headers 
>> and libraries properly.  (Yes the headers
>> are similar but they are not identical).
>> 
>> On my distro, the pmix pmi.h and pmi2.h headers were in /usr/include, which 
>> openmpi finds with:
>> 
>> --with-pmi=/usr
>> 
>> After removing the pmix development headers, I am left with the slurm 
>> headers are in /usr/include/slurm.
>> Unfortunately the configure item:
>> 
>> --with-pmi=/usr/include/slurm
>> 
>> fails to locate the pmi.h/pmi2.h slurm headers due to the addition of that 
>> /include subpath, i.e. they are not
>> in /usr/include/slurm/include.  There is no way to specify an absolute path 
>> to a header directory.  So here's
>> what I did:
>> 
>> (unpack tarball to /path/to/openmpi-2.1.1)
>> cd /path/to/openmpi-2.1.1
>> mkdir slurm
>> ln -s /usr/include/slurm /path/to/openmpi-2.1.1/slurm/include
>> 
>> then configure as follows:
>> 
>> ./configure --with-pmi=/path/to/openmpi-2.1.1/slurm
>> 
>> The configure adds the /include subpath and finds the slurm pmi/pmi2 headers 
>> through my symlink.
>> 
>> Cumbersome, but it works.
>> 
>> Phil
>> _______________________________________________
>> devel mailing list
>> devel@lists.open-mpi.org <mailto:devel@lists.open-mpi.org>
>> https://lists.open-mpi.org/mailman/listinfo/devel
> 
> 
> 

_______________________________________________
devel mailing list
devel@lists.open-mpi.org
https://lists.open-mpi.org/mailman/listinfo/devel

Reply via email to