From 1613e44d51d6821fd2411d24269d22dcbd408e5d Mon Sep 17 00:00:00 2001 From: Andrea Bocci Date: Wed, 30 Dec 2020 01:16:44 +0100 Subject: [PATCH] Add the UCX libraries version 1.9.0 Unified Communication X (UCX) provides an optimized communication layer for Message Passing (MPI), PGAS/OpenSHMEM libraries and RPC/data-centric applications. UCX utilizes high-speed networks for inter-node communication, and shared memory mechanisms for efficient intra-node communication. For more information see - https://www.openucx.org/ - https://github.com/openucx/ucx/tree/v1.9.0 --- ucx-toolfile.spec | 25 ++++++++++++++++++ ucx.spec | 67 +++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 92 insertions(+) create mode 100644 ucx-toolfile.spec create mode 100644 ucx.spec diff --git a/ucx-toolfile.spec b/ucx-toolfile.spec new file mode 100644 index 00000000000..874373f3fa7 --- /dev/null +++ b/ucx-toolfile.spec @@ -0,0 +1,25 @@ +### RPM external ucx-toolfile 1.0 +Requires: ucx +%prep + +%build + +%install + +mkdir -p %i/etc/scram.d +cat << \EOF_TOOLFILE >%i/etc/scram.d/ucx.xml + + + + + + + + + + + + +EOF_TOOLFILE + +## IMPORT scram-tools-post diff --git a/ucx.spec b/ucx.spec new file mode 100644 index 00000000000..50033a873c5 --- /dev/null +++ b/ucx.spec @@ -0,0 +1,67 @@ +### RPM external ucx 1.9.0 +Source: https://github.com/openucx/%{n}/releases/download/v%{realversion}/%{n}-%{realversion}.tar.gz +BuildRequires: autotools +Requires: numactl cuda gdrcopy +AutoReq: no +# external libraries are needed for additional protocols: +# --with-rocm: AMD ROCm platform for accelerated compute +# --with-verbs: Verbs library for direct userspace use of RDMA (InfiniBand/iWARP) hardware +# --with-cm: Userspace InfiniBand Communication Managment library +# --with-rdmacm: Userspace RDMA Connection Manager +# --with-knem: KNEM High-Performance Intra-Node MPI Communication +# etc. + +%prep +%setup -q -n %{n}-%{realversion} + +./configure \ + --prefix=%i \ + --disable-dependency-tracking \ + --enable-openmp \ + --enable-shared \ + --disable-static \ + --enable-ucg \ + --disable-doxygen-doc \ + --disable-doxygen-man \ + --disable-doxygen-html \ + --enable-compiler-opt \ + --enable-cma \ + --enable-mt \ + --with-pic \ + --with-gnu-ld \ + --with-avx \ + --with-sse41 \ + --with-sse42 \ + --without-java \ + --with-cuda=$CUDA_ROOT \ + --without-rocm \ + --with-gdrcopy=$GDRCOPY_ROOT \ + --without-verbs \ + --with-rc \ + --with-ud \ + --with-dc \ + --with-mlx5-dv \ + --with-ib-hw-tm \ + --with-dm \ + --without-cm \ + --without-rdmacm \ + --without-knem \ + --with-xpmem \ + CPPFLAGS="-I$NUMACTL_ROOT/include" \ + LDFLAGS="-L$NUMACTL_ROOT/lib" + +%build +make %{makeprocesses} + +%install +make install + +# Remove pkg-config to avoid rpm-generated dependency on /usr/bin/pkg-config +rm -rf %{i}/lib/pkgconfig + +# Remove the UCX examples +rm -rf %{i}/share/ucx/examples + +%post +%{relocateConfig}lib/lib*.la +%{relocateConfig}lib/ucx/lib*.la