Riccardo,

I am a bit confused by your explanation.


Open MPI does embed PMIx, but only for itself.

An other way to put it is you have to install pmix first (package or download from pmix.org)

and then build SLURM on top of it.


Then you can build Open MPI with the same (external) PMIx or the embedded one

(since PMIx offers cross-version compatilibity support)


Cheers,


Gilles


On 3/15/2019 12:24 PM, Riccardo Veraldi wrote:
thanks to all.
the problem is that slurm's configure is not able to find the pmix includes

configure:20846: checking for pmix installation
configure:21005: result:
configure:21021: WARNING: unable to locate pmix installation

regardless of the path I give.
and the reason is that configure searches for the following includes:

test -f "$d/include/pmix/pmix_common.h"
test -f "$d/include/pmix_server.h"

but neither of the two are installed by openmpi.

one of the two is in the openmpi soure code tarball

./opal/mca/pmix/pmix3x/pmix/include/pmix_server.h

the other one is in a ".h.in" file. and not ".h"

./opal/mca/pmix/pmix3x/pmix/include/pmix_common.h.in

anyway they do not get installed by the rpm.

the last thing I can try is build directly openmpi from sources and give up with the rpm package build. The openmpi .spec has also errors which I had to fix manually to allow it to successfully build



On 3/12/19 4:56 PM, Daniel Letai wrote:
Hi.
On 12/03/2019 22:53:36, Riccardo Veraldi wrote:
Hello,
after trynig hard for over 10 days I am forced to write to the list.
I am not able to have SLURM work with openmpi. Openmpi compiled binaries won't run on slurm, while all non openmpi progs run just fine under "srun". I am using SLURM 18.08.5 building the rpm from the tarball: rpmbuild -ta slurm-18.08.5-2.tar.bz2 prior to bulid SLURM I installed openmpi 4.0.0 which has built in pmix support. the pmix libraries are in /usr/lib64/pmix/ which is the default installation path.

The problem is that hellompi is not working if I launch in from srun. of course it runs outside slurm.

[psanagpu105:10995] OPAL ERROR: Not initialized in file pmix3x_client.c at line 113
--------------------------------------------------------------------------
The application appears to have been direct launched using "srun",
but OMPI was not built with SLURM's PMI support and therefore cannot
execute. There are several options for building PMI support under

I would guess (but having the config.log files would verify it) that you should rebuild Slurm --with-pmix and then you should rebuild OpenMPI --with Slurm.

Currently there might be a bug in Slurm's configure file building PMIx support without path, so you might either modify the spec before building (add --with-pmix=/usr to the configure section) or for testing purposes ./configure --with-pmix=/usr; make; make install.


It seems your current configuration has built-in mismatch - Slurm only supports pmi2, while OpenMPI only supports PMIx. you should build with at least one common PMI: either external PMIx when building  Slurm, or Slurm's PMI2 when building OpenMPI.

However, I would have expected the non-PMI option (srun --mpi=openmpi) to work even in your env, and Slurm should have built PMIx support automatically since it's in default search path.


SLURM, depending upon the SLURM version you are using:

  version 16.05 or later: you can use SLURM's PMIx support. This
  requires that you configure and build SLURM --with-pmix.

  Versions earlier than 16.05: you must use either SLURM's PMI-1 or
  PMI-2 support. SLURM builds PMI-1 by default, or you can manually
  install PMI-2. You must then build Open MPI using --with-pmi pointing
  to the SLURM PMI library location.

Please configure as appropriate and try again.
--------------------------------------------------------------------------
*** An error occurred in MPI_Init
*** on a NULL communicator
*** MPI_ERRORS_ARE_FATAL (processes in this communicator will now abort,
***    and potentially your MPI job)
[psanagpu105:10995] Local abort before MPI_INIT completed completed successfully, but am not able to aggregate error messages, and not able to guarantee that all other processes were killed!
srun: error: psanagpu105: task 0: Exited with exit code 1

I really have no clue. I even reinstalled openmpi on a specific different path /opt/openmpi/4.0.0 anyway seems like slurm does not know how to fine the MPI libraries even though they are there and right now in the default path /usr/lib64

even using --mpi=pmi2 or --mpi=openmpi does not fix the problem and the same error message is given to me.
srun --mpi=list
srun: MPI types are...
srun: none
srun: openmpi
srun: pmi2


Any hint how could I fix this problem ?
thanks a lot

Rick


--
Regards,

Dani_L.



Reply via email to