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