Skip to content

TL/MLX5: enable multicast bcast by defaults for host buffers #6786

TL/MLX5: enable multicast bcast by defaults for host buffers

TL/MLX5: enable multicast bcast by defaults for host buffers #6786

Workflow file for this run

name: OpenMPI tests
on: [push, pull_request]
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true
env:
OPEN_UCX_LINK: https://github.com/openucx/ucx
OPEN_UCX_BRANCH: master
OPEN_MPI_LINK: https://github.com/open-mpi/ompi.git
OPEN_MPI_BRANCH: v5.0.x
IMB_LINK: https://github.com/intel/mpi-benchmarks.git
IMB_COLLS: allgather,allgatherv,allreduce,alltoall,alltoallv,barrier,bcast,gather,gatherv,reduce,reduce_scatter,reduce_scatter_block,scatter,scatterv
jobs:
tests:
runs-on: ubuntu-latest
steps:
- name: Install dependencies
run: |
sudo apt-get update
sudo apt-get install -y --no-install-recommends doxygen doxygen-latex
- name: Get UCX
run: git clone ${OPEN_UCX_LINK} -b ${OPEN_UCX_BRANCH} /tmp/ucx
- name: Build UCX
run: |
cd /tmp/ucx && ./autogen.sh
./contrib/configure-release --without-java --without-go --disable-numa --prefix $PWD/install
make -j install
- uses: actions/checkout@v4
- name: Build UCC
run: |
./autogen.sh
./configure --prefix=/tmp/ucc/install --enable-gtest --with-ucx=/tmp/ucx/install
make -j`nproc` install
make gtest
- name: Run ucc_info
run: |
/tmp/ucc/install/bin/ucc_info -vc
- name: Run CMake tests
run: |
set -e
cmake -S test/cmake -B /tmp/cmake-ucc -DCMAKE_PREFIX_PATH=/tmp/ucc/install
cd /tmp/cmake-ucc
cmake --build .
./test_ucc
- name: Get OMPI
run: |
git clone ${OPEN_MPI_LINK} -b ${OPEN_MPI_BRANCH} /tmp/ompi
cd /tmp/ompi
git submodule update --init --recursive
- name: Build OMPI
run: >
cd /tmp/ompi
./autogen.pl --exclude pml-cm,mtl,coll-adapt,coll-han,coll-inter,coll-ftagree
./configure
--prefix=/tmp/ompi/install
--enable-mpirun-prefix-by-default
--disable-mpi-fortran
--disable-man-pages
--with-ucx=/tmp/ucx/install
--with-ucc=/tmp/ucc/install
make -j install
- name: Build ucc_perftest (with OMPI)
run: |
set -e
CC=/tmp/ompi/install/bin/mpicc CXX=/tmp/ompi/install/bin/mpicxx \
./configure --prefix=/tmp/ucc/install --enable-gtest --with-ucx=/tmp/ucx/install --with-mpi=/tmp/ompi/install
make -C tools/perf -j`nproc`
make -C tools/perf install
- name: Run ucc_perftest
run: |
set -e
test -x /tmp/ucc/install/bin/ucc_perftest
export LD_LIBRARY_PATH=/tmp/ucc/install/lib:/tmp/ucx/install/lib:/tmp/ompi/install/lib:$LD_LIBRARY_PATH
COLLS=(
allgather allgatherv allreduce alltoall alltoallv
barrier bcast gather gatherv
reduce reduce_scatter reduce_scatterv scatterv
)
for c in "${COLLS[@]}"; do
echo "Running ucc_perftest -c ${c}"
/tmp/ompi/install/bin/mpirun \
-np 4 -H localhost:4 \
--bind-to none \
--mca pml ucx \
--mca pml_ucx_tls any \
--mca pml_ucx_devices any \
--mca coll_ucc_enable 0 \
-x LD_LIBRARY_PATH \
-x UCC_LOG_LEVEL=info \
-x UCC_TLS=ucp \
-x UCC_CONFIG_FILE= \
/tmp/ucc/install/bin/ucc_perftest \
-c "${c}" -m host -d float32 -b 1024 -e 1024 -n 10 -w 2
done
INPLACE_COLLS=(
allgather allgatherv allreduce
gather gatherv
reduce reduce_scatter reduce_scatterv
)
for c in "${INPLACE_COLLS[@]}"; do
echo "Running ucc_perftest (inplace) -c ${c}"
/tmp/ompi/install/bin/mpirun \
-np 4 -H localhost:4 \
--bind-to none \
--mca pml ucx \
--mca pml_ucx_tls any \
--mca pml_ucx_devices any \
--mca coll_ucc_enable 0 \
-x LD_LIBRARY_PATH \
-x UCC_LOG_LEVEL=info \
-x UCC_TLS=ucp \
-x UCC_CONFIG_FILE= \
/tmp/ucc/install/bin/ucc_perftest \
-c "${c}" -m host -d float32 -b 1024 -e 1024 -n 10 -w 2 -i
done
- name: Get IMB
run: git clone ${IMB_LINK} /tmp/imb
- name: Build IMB
run: |
cd /tmp/imb
make CC=/tmp/ompi/install/bin/mpicc CXX=/tmp/ompi/install/bin/mpicxx CPPFLAGS="-DCHECK=1" -j IMB-MPI1
- name: Run IMB-DCHECK
run: >
/tmp/ompi/install/bin/mpirun
-np 8
-H localhost:8
--bind-to none
--mca pml ucx
--mca pml_ucx_tls any
--mca pml_ucx_devices any
--mca coll_ucc_priority 100
--mca coll_ucc_enable 1
/tmp/imb/IMB-MPI1 ${IMB_COLLS} -iter 10 -iter_policy off