Hi Nathan

thanks for this suggestion. I have understood that now all is managed by the UCX layer. Am I wrong ? These options do not seams to work with my openMPI 5.0.5 build. But I've built OpenMPI on the cluster front-end and it had no HBA at this  time. I've added one this evening (an old spare one I had) and the software to manage it, may be should I rebuild OpenMPI ?

bash-5.1$ mpirun hostname
kareline-0-0.localcluster.priv
kareline-0-1.localcluster.priv

bash-5.1$ mpirun --mca pml cm --mca mtl psm2 osu_bw
--------------------------------------------------------------------------
A requested component was not found, or was unable to be opened. This
means that this component is either not installed or is unable to be
used on your system (e.g., sometimes this means that shared libraries
that the component requires are unable to be found/loaded).  Note that
Open MPI stopped checking at the first component that it did not find.

Host:      kareline-0-0
Framework: mtl
Component: psm2
--------------------------------------------------------------------------
--------------------------------------------------------------------------
No components were able to be opened in the pml framework.

This typically means that either no components of this type were
installed, or none of the installed components can be loaded.
Sometimes this means that shared libraries required by these
components are unable to be found/loaded.

  Host:      kareline-0-0
  Framework: pml
--------------------------------------------------------------------------

bash-5.1$ which mpirun
/opt/GCC14/OpenMPI/5.0.5/bin/mpirun
bash-5.1$


Patrick

Le 30/09/2024 à 18:26, Nathan Hjelm a écrit :
If this is a QLogic system why not try psm2 (--mca pml cm --mca mtl psm2)? Not sure how good UCX support is over these systems and psm2 is the vendor's library.

Not sure what the right link is to the current version but found this version:

GitHub - cornelisnetworks/opa-psm2
GitHub - cornelisnetworks/opa-psm2
github.com
<https://github.com/cornelisnetworks/opa-psm2>


-Nathan


On Sep 30, 2024, at 10:18 AM, Patrick Begou via users <users@lists.open-mpi.org> wrote:


Hi,

I'm working on refreshing an old cluster with Almalinux 9 (instead of CentOS6 😕) and building a fresh OpenMPI 5.0.5 environment. I've reached the step where OpenMPI begins to work with ucx 1.17 and Pmix 5.0.3 but not totally. Nodes are using a Qlogic QDR HBA with a managed Qlogic switch (40Gb/s) and 1Gb/s ethernet and I've a limited knowledge with all the software stack required now with ucx for this hardware.

This is the output of osu_bw test between 2 nodes (in slurm context)

bash-5.1$ mpirun --mca pml ucx --mca osc ucx --mca scoll ucx --mca atomic ucx osu_bw # OSU MPI Bandwidth Test v7.4 # Datatype: MPI_CHAR. # Size      Bandwidth (MB/s) 1                       0.30 2                       0.59 4                       1.16 8                       2.33 16                      4.78 32                      9.46 64                     18.80 128                    36.21 256                    69.61 512                   142.48 1024                  256.41 2048                  498.27 4096                  719.19 8192                 1010.86 16384                1416.17 32768                1935.44 65536                2509.17 131072               2786.79 262144               2401.26 524288                500.32 1048576               854.12 2097152              3114.28 4194304              1830.78

The options come from https://docs.open-mpi.org/en/main/tuning-apps/networking/ib-and-roce.html, without them it uses the slow ethernet 1Gb/s interface. Running the osu_bibw test is worse as soon as the size of the messages increase like if some congestion occurs. # OSU MPI Bi-Directional Bandwidth Test v7.4 # Datatype: MPI_CHAR. # Size Bandwidth (MB/s) 1 0.52 2 1.04 4 2.08 8 4.18 16 8.37 32 16.76 64 33.11 128 65.93 256 130.89 512 248.77 1024 492.23 2048 1024.23 4096 1622.98 8192 2352.29 16384 1724.83 32768 2309.67 65536 2538.13 131072 2586.15 262144 95.93 524288 42.83 1048576 63.14 2097152 78.81 4194304 129.66

1) I've built ucx 1.17.0 with the gcc 11.4 provided by the OS as I need a thread safe version (suggested by Gilles Gouaillardet when I was building UCX for OpenMPI 4.04 on another cluster with HDR100 and have some performances troubles) ../ucx/contrib/configure-release --enable-mt

2) I've built a fresh version of PMIX 5.0.3 with the gcc 11.4 provided by the OS without specific options: prefix=/usr build_srpm=yes build_multiple=yes ./buildrpm.sh ../../pmix-5.0.3.tar.bz2 3) slurm is built with PMIX and UCX with the gcc 11.4 provided by the OS

3) Then I've built OpenMPI with a fresh install of gcc 14.2 (to have a correct version of the fortran module) Configure command line: '--enable-mpirun-prefix-by-default' '--prefix=/opt/GCC14/OpenMPI/5.0.5' '--enable-mpi1-compatibility' '--with-slurm'

PATH and LD_LIBRARY_PATH are set via the module environment tool.


Using the old deployment of this cluster (same Qlogiq HBA and IB switch) based on openMPI 3.1.3rc1 with openib and gcc 7.3, it works fine. Configure command line: '--prefix=/share/apps/GCC73/openmpi/31-patch' '--enable-mpirun-prefix-by-default' '--disable-dlopen' '--enable-mpi-cxx' '--without-slurm' '--enable-mpi-thread-multiple'

# OSU MPI Bi-Directional Bandwidth Test v7.4 # Datatype: MPI_CHAR. # Size Bandwidth (MB/s) 1 1.93 .... 1048576 6034.23 2097152 6028.31 4194304 6033.63

The basic Almalinux packages deployed to manage the infiniband network are: - kernel-lt => required for the ib_qib module that is not available with Almalinux9 - kernel-lt-devel - infiniband-diags - libibumad - rdma-core - ib_qib-ibverbs

My ucx threadsafe packages deployed: - ucx-threadsafe-1.17.0-1.el9.x86_64 - ucx-threadsafe-devel-1.17.0-1.el9.x86_64 - ucx-threadsafe-ib-1.17.0-1.el9.x86_64 - ucx-threadsafe-rdmacm-1.17.0-1.el9.x86_64 - ucx-threadsafe-cma-1.17.0-1.el9.x86_64

May be I'm wrong there too.

Thanks all for your help. Patrick


Reply via email to