OpenMPI-5
There is no --with-verb
anymore. And openib BTL is remove in this version, so InfiniBand must use "ucx PML". See more
May use UCX with OMPI-5 and do not need seperate installation for Eagle, Lion?
May not be used with UCX-1.11
See news in 5.x here
Use UCX or Libfabric for IB. (Libfabric may use a lot of memory, so may lead to memory problem)
UCX + OMPI4 may cause address not mapped
error with GPAW.
USC1: (Cenntos 6.5)
module load tool_dev/binutils-2.36 # gold, should use to avoid link-error
module load compiler/gcc-11.2
export myUCX = /uhome/p001cao/app/tool_dev/ucx-1.11
cd openmpi-5.0.0
mkdir build_eagle && cd build_eagle
../configure CC = gcc CXX = g++ FC = gfortran F77 = gfortran LDFLAGS = "-fuse-ld=gold -lrt" \
--with-sge --with-ucx= ${ myUCX } \
--prefix= /uhome/p001cao/app/openmpi/5.0.0-gcc11.2-eagle
Tachyon - Cenntos 6.9
Using LLVM
With version 5.0.0rc12
, compiling fails with error ld.lld: error: unable to find library -lnuma
and -ludev
. This mean the current version of libudev
no longer work. Tried install install them
create link : ln -sf $UDEVlib/libudev.a $myLLVM/lib/libudev.so.0
libudev
error can solve by --without-hcoll
as discuss here
prrte
docs error, to disable build docs, delete docs
in SUBDIRS
of /home1/p001cao/0SourceCode/ompi-5.0.x/3rd-party/prrte/Makefile.in
see this -> not work. Solve by manually create files in subfolder 3rd -party → copy from folder 0SourceCode/ompi-5.0.x/3rd-party/prrte/src/docs/show-help-files
and rename .rst to .txt (or create empty files) files: help-prte.txt, help-prted.txt, help-prterun.txt, help-prun.txt, help-pterm.txt
in folder .../build_clang/3rd-party/prrte/src/docs/show-help-files/_build/text
. Then make install
cd /home1/p001cao/0SourceCode
# git clone --recursive -b v5.0.x --recursive https://github.com/open-mpi/ompi.git ompi-5.0.x
cd ompi-5.0.x
git pull origin v5.0.x
git submodule update --recursive
module load tooldev/autoconf-2.72c
module load tooldev/automake-1.16.5
module load tooldev/libtool-2.4.7
export ACLOCAL_PATH = /home1/p001cao/app/tooldev/libtool-2.4.7/share/aclocal
./autogen.pl
rm -rf build_clang && mkdir build_clang && cd build_clang
module load compiler/llvm-17 # clang + lld
module load tooldev/libudev
myLLVM = /home1/p001cao/app/compiler/llvm-17
export PATH = $myLLVM /bin:$PATH
export CC = clang CXX = clang++ FC = gfortran # flang-new
export LDFLAGS = "-fuse-ld=lld -lrt"
NUMAlib = /home1/p001cao/app/tooldev/numactl-2.0.13/lib
UDEVlib = /home1/p001cao/app/tooldev/libudev-zero/lib
export LD_LIBRARY_PATH = $myLLVM /lib:$NUMAlib :$UDEVlib :$LD_LIBRARY_PATH
myUCX = /home1/p001cao/app/tooldev/ucx1.15-clang17
KNEM = /opt/knem-1.1.3.90mlnx1 # /home1/p001cao/app/tooldev/knem-1.1.4
OFI = /home1/p001cao/app/tooldev/libfabric-1.19
myPREFIX = /home1/p001cao/app/mpi/openmpi5.0.x-clang17
../configure --with-sge --with-ucx= ${ myUCX } --with-knem= ${ KNEM } --with-ofi= ${ OFI } \
--without-hcoll --enable-mpi1-compatibility --prefix= ${ myPREFIX }
make -j 16 && make install
LLVM no UCX
rm -rf build_noUCX && mkdir build_noUCX && cd build_noUCX
module load compiler/llvm-17 # clang + lld
module load tooldev/libudev
myLLVM = /home1/p001cao/app/compiler/llvm-17
export PATH = $myLLVM /bin:$PATH
export CC = clang CXX = clang++ FC = gfortran # flang-new
export LDFLAGS = "-fuse-ld=lld -lrt"
NUMAlib = /home1/p001cao/app/tooldev/numactl-2.0.13/lib
UDEVlib = /home1/p001cao/app/tooldev/libudev-zero/lib
export LD_LIBRARY_PATH = $myLLVM /lib:$NUMAlib :$UDEVlib :$LD_LIBRARY_PATH
KNEM = /opt/knem-1.1.3.90mlnx1 # /home1/p001cao/app/tooldev/knem-1.1.4
OFI = /home1/p001cao/app/tooldev/libfabric-1.19
myPREFIX = /home1/p001cao/app/mpi/openmpi5.0.x-clang17-noUCX
../configure --with-sge --without-ucx --with-knem= ${ KNEM } --with-ofi= ${ OFI } \
--without-hcoll --enable-mpi1-compatibility --prefix= ${ myPREFIX }
make -j 16 && make install