Loris Bennett <[email protected]> writes:
> Hi,
>
> When installing
>
> OpenMPI-2.1.0-GCC-6.3.0-2.28.eb
>
> on a machine with
>
> Slurm 19.05.3-2
>
> I get the following error:
>
> checking if user requested PMI support... yes
> checking for pmi.h in /usr/include/slurm/include... not found
> checking for pmi.h in /usr/include/slurm/include/slurm... not found
> checking for libpmi in /usr/lib64... found
> checking for PMI_Init in -lpmi... yes
> checking for pmi2.h in /usr/include/slurm/include... not found
> checking for pmi2.h in /usr/include/slurm/include/slurm... not found
> checking for libpmi2 in /usr/lib64... found
> checking for PMI2_Init in -lpmi2... yes
> checking can PMI support be built... no
> configure: WARNING: PMI support requested (via --with-pmi) but neither pmi.h
> configure: WARNING: nor pmi2.h were found under locations:
> configure: WARNING: /usr/include/slurm
> configure: WARNING: /usr/include/slurm/slurm
> configure: WARNING: Specified path: /usr/include/slurm
> configure: WARNING: OR neither libpmi nor libpmi2 were found under:
> configure: WARNING: /usr/lib64/lib
> configure: WARNING: /usr/lib64/lib64
> configure: WARNING: Specified path: /usr/lib64
> configure: error: Aborting
>
> Slurm was installed from the sources and on my system the PMI headers
> are at
>
> /usr/include/pmi.h
> /usr/include/slurm/pmi.h
> /usr/include/pmi2.h
> /usr/include/slurm/pmi2.h
>
> Is the configure looking in the wrong place or were the PMI headers in a
> different place in previous versions of Slurm?
So, config.log says:
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
It was created by Open MPI configure 2.1.0, which was
generated by GNU Autoconf 2.69. Invocation command line was
$ ./configure
--prefix=/trinity/shared/easybuild/software/OpenMPI/2.1.0-GCC-6.3.0-2.28
--build=x86_64-pc-linux-gnu --host=x86_64-pc-linux-gnu --enable-shared
--enable-mpi-thread-multiple --with-verbs --enable-mpirun-prefix-by-default
--with-hwloc=/trinity/shared/easybuild/software/hwloc/1.11.6-GCC-6.3.0-2.28
--without-ucx --with-slurm --with-pmi=/usr/include/slurm
--with-pmi-libdir=/usr/lib64
So while
--with-pmi=/usr/include/slurm
is given, which is indeed the directory containing the header files.
However, configure doesn't look into this directory but instead looks at
the for the non-existent 'include' and 'include/slurm' subdirectories:
configure:80629: result: yes
configure:80664: checking for pmi.h in /usr/include/slurm/include
configure:80671: result: not found
configure:80673: checking for pmi.h in /usr/include/slurm/include/slurm
configure:80925: checking for pmi2.h in /usr/include/slurm/include
configure:80932: result: not found
configure:80934: checking for pmi2.h in /usr/include/slurm/include/slurm
configure:80942: result: not found
The problem seems to be that the OpemMPI 'configure' incorrectly adds
'include' and 'include/slurm' to the variable $check_pmi_install_dir.
So is this version of OpenMPI just broken, as far as configure goes?
Can anyone confirm?
Cheers,
Loris
--
Dr. Loris Bennett (Mr.)
ZEDAT, Freie Universität Berlin Email [email protected]