> On Oct 6, 2018, at 6:06 AM, <gil...@rist.or.jp> <gil...@rist.or.jp> wrote: > > Charles, > > ucx has a higher priority than ob1, that is why it is used by default > when available.
Good to know. Thanks. > > If you can provide simple instructions on how to build and test one of > the apps that experiment > a memory leak, that would greatly help us and the UCX folks reproduce, > troubleshoot and diagnose this issue. I’ll be happy to do that. Is it better to post it here or on the OpenMPI github site? Regards, Charlie > > Cheers, > > Gilles > > ----- Original Message ----- >> >>> On Oct 5, 2018, at 11:31 AM, Gilles Gouaillardet <gilles. > gouaillar...@gmail.com> wrote: >>> >>> are you saying that even if you >>> >>> mpirun --mca pml ob1 ... >>> >>> (e.g. force the ob1 component of the pml framework) the memory leak > is >>> still present ? >> >> No, I do not mean to say that - at least not in the current > incarnation. Running with the following parameters avoids the leak… >> >> export OMPI_MCA_pml="ob1" >> export OMPI_MCA_btl_openib_eager_limit=1048576 >> export OMPI_MCA_btl_openib_max_send_size=1048576 >> >> as does building OpenMPI without UCX support (i.e. —without-ucx). >> >> However, building _with_ UCX support (including the current github > source) and running with the following parameters produces >> the leak (note that no PML was explicitly requested). >> >> export OMPI_MCA_oob_tcp_listen_mode="listen_thread" >> export OMPI_MCA_btl_openib_eager_limit=1048576 >> export OMPI_MCA_btl_openib_max_send_size=1048576 >> export OMPI_MCA_btl="self,vader,openib” >> >> The eager_limit and send_size limits are needed with this app to > prevent a deadlock that I’ve posted about previously. >> >> Also, explicitly requesting the UCX PML with, >> >> export OMPI_MCA_pml=“ucx" >> >> produces the leak. >> >> I’m continuing to try to find exactly what I’m doing wrong to produce > this behavior but have been unable to arrive at >> a solution other than excluding UCX which seems like a bad idea since > Jeff (Squyres) pointed out that it is the >> Mellanox-recommended way to run on Mellanox hardware. Interestingly, > using the UCX PML framework avoids >> the deadlock that results when running with the default parameters and > not limiting the message sizes - another >> reason we’d like to be able to use it. >> >> I can read your mind at this point - “Wow, these guys have really > horked their cluster”. Could be. But we run >> thousands of jobs every day including many other OpenMPI jobs (vasp, > gromacs, raxml, lammps, namd, etc). >> Also the users of the Arepo and Gadget code are currently running with > MVAPICH2 without issue. I installed >> it specifically to get them past these OpenMPI problems. We don’t > normally build anything with MPICH/MVAPICH/IMPI >> since we have never had any real reason to - until now. >> >> That may have to be the solution but the memory leak is so readily > reproducible that I thought I’d ask about it. >> Since it appears that others are not seeing this issue, I’ll continue > to try to figure it out and if I do, I’ll be sure to post back. >> >>> As a side note, we strongly recommend to avoid >>> configure --with-FOO=/usr >>> instead >>> configure --with-FOO >>> should be used (otherwise you will end up with -I/usr/include >>> -L/usr/lib64 and that could silently hide third party libraries >>> installed in a non standard directory). If --with-FOO fails for you, >>> then this is a bug we will appreciate you report. >> >> Noted and logged. We’ve been using the —with-FOO=/usr for a long time > (since 1.x days). There was a reason we started doing >> it but I’ve long since forgotten what it was but I think it was to _ > avoid_ what you describe - not cause it. Regardless, >> I’ll heed your warning and remove it from future builds and file a bug > if there are any problems. >> >> However, I did post of a similar problem previously in when > configuring against an external PMIx library. The configure >> script produces (or did) a "-L/usr/lib” instead of a "-L/usr/lib64” > resulting in unresolved PMIx routines when linking. >> That was with OpenMPI 2.1.2. We now include a lib -> lib64 symlink in > our /opt/pmix/x.y.z directories so I haven’t looked to >> see if that was fixed for 3.x or not. >> >> I should have also mentioned in my previous post that HPC_CUDA_DIR=NO > meaning that CUDA support has >> been excluded from these builds (in case anyone was wondering). >> >> Thanks for the feedback, >> >> Charlie >> >>> >>> Cheers, >>> >>> Gilles >>> On Fri, Oct 5, 2018 at 6:42 AM Charles A Taylor <chas...@ufl.edu> > wrote: >>>> >>>> >>>> We are seeing a gaping memory leak when running OpenMPI 3.1.x (or 2. > 1.2, for that matter) built with UCX support. The leak shows up >>>> whether the “ucx” PML is specified for the run or not. The > applications in question are arepo and gizmo but it I have no reason to > believe >>>> that others are not affected as well. >>>> >>>> Basically the MPI processes grow without bound until SLURM kills > the job or the host memory is exhausted. >>>> If I configure and build with “--without-ucx” the problem goes away. >>>> >>>> I didn’t see anything about this on the UCX github site so I > thought I’d ask here. Anyone else seeing the same or similar? >>>> >>>> What version of UCX is OpenMPI 3.1.x tested against? >>>> >>>> Regards, >>>> >>>> Charlie Taylor >>>> UF Research Computing >>>> >>>> Details: >>>> ————————————— >>>> RHEL7.5 >>>> OpenMPI 3.1.2 (and any other version I’ve tried). >>>> ucx 1.2.2-1.el7 (RH native) >>>> RH native IB stack >>>> Mellanox FDR/EDR IB fabric >>>> Intel Parallel Studio 2018.1.163 >>>> >>>> Configuration Options: >>>> ————————————————— >>>> CFG_OPTS="" >>>> CFG_OPTS="$CFG_OPTS C=icc CXX=icpc FC=ifort FFLAGS=\"-O2 -g -warn - > m64\" LDFLAGS=\"\" " >>>> CFG_OPTS="$CFG_OPTS --enable-static" >>>> CFG_OPTS="$CFG_OPTS --enable-orterun-prefix-by-default" >>>> CFG_OPTS="$CFG_OPTS --with-slurm=/opt/slurm" >>>> CFG_OPTS="$CFG_OPTS --with-pmix=/opt/pmix/2.1.1" >>>> CFG_OPTS="$CFG_OPTS --with-pmi=/opt/slurm" >>>> CFG_OPTS="$CFG_OPTS --with-libevent=external" >>>> CFG_OPTS="$CFG_OPTS --with-hwloc=external" >>>> CFG_OPTS="$CFG_OPTS --with-verbs=/usr" >>>> CFG_OPTS="$CFG_OPTS --with-libfabric=/usr" >>>> CFG_OPTS="$CFG_OPTS --with-ucx=/usr" >>>> CFG_OPTS="$CFG_OPTS --with-verbs-libdir=/usr/lib64" >>>> CFG_OPTS="$CFG_OPTS --with-mxm=no" >>>> CFG_OPTS="$CFG_OPTS --with-cuda=${HPC_CUDA_DIR}" >>>> CFG_OPTS="$CFG_OPTS --enable-openib-udcm" >>>> CFG_OPTS="$CFG_OPTS --enable-openib-rdmacm" >>>> CFG_OPTS="$CFG_OPTS --disable-pmix-dstore" >>>> >>>> rpmbuild --ba \ >>>> --define '_name openmpi' \ >>>> --define "_version $OMPI_VER" \ >>>> --define "_release ${RELEASE}" \ >>>> --define "_prefix $PREFIX" \ >>>> --define '_mandir %{_prefix}/share/man' \ >>>> --define '_defaultdocdir %{_prefix}' \ >>>> --define 'mflags -j 8' \ >>>> --define 'use_default_rpm_opt_flags 1' \ >>>> --define 'use_check_files 0' \ >>>> --define 'install_shell_scripts 1' \ >>>> --define 'shell_scripts_basename mpivars' \ >>>> --define "configure_options $CFG_OPTS " \ >>>> openmpi-${OMPI_VER}.spec 2>&1 | tee rpmbuild.log >> _______________________________________________ >> users mailing list >> users@lists.open-mpi.org >> https://urldefense.proofpoint.com/v2/url?u=https-3A__lists.open-2Dmpi.org_mailman_listinfo_users&d=DwIGaQ&c=pZJPUDQ3SB9JplYbifm4nt2lEVG5pWx2KikqINpWlZM&r=HOtXciFqK5GlgIgLAxthUQ&m=eZpC-PdZ0V-ZvSxLp7MxP2fdhRzm60qKMMrgqbRvZgQ&s=HFD6S6cr9ZsYgY8D209CnegdKPIs4eZR7lx6HRTsP6k&e= > _______________________________________________ > users mailing list > users@lists.open-mpi.org > https://urldefense.proofpoint.com/v2/url?u=https-3A__lists.open-2Dmpi.org_mailman_listinfo_users&d=DwIGaQ&c=pZJPUDQ3SB9JplYbifm4nt2lEVG5pWx2KikqINpWlZM&r=HOtXciFqK5GlgIgLAxthUQ&m=eZpC-PdZ0V-ZvSxLp7MxP2fdhRzm60qKMMrgqbRvZgQ&s=HFD6S6cr9ZsYgY8D209CnegdKPIs4eZR7lx6HRTsP6k&e= _______________________________________________ users mailing list users@lists.open-mpi.org https://lists.open-mpi.org/mailman/listinfo/users