openucx/openucx.spec

232 lines
6.8 KiB
RPMSpec
Raw Normal View History

#
# spec file for package openucx
#
# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
Name: openucx
Summary: Unifieid Communication X
License: BSD-3-Clause
Group: Development/Libraries/C and C++
Accepting request 733589 from home:NMoreyChaisemartin:branches:science:HPC - Update to v1.6.0 - Features: - Modular architecture for UCT transports - ROCm transport re-design: support for managed memory, direct copy, ROCm GDR - Random scheduling policy for DC transport - Optimized out-of-box settings for multi-rail - Added support for OmniPath (using Verbs) - Support for PCI atomics with IB transports - Reduced UCP address size for homogeneous environments - Bugfixes: - Multiple stability and performance improvements in TCP transport - Multiple stability fixed in Verbs and MLX5 transports - Multiple stability fixes in UCM memory hooks - Multiple stability fixes in UGNI transport - RPM Spec file cleanup - Fixing compilation issues with most recent clang and gcc compilers - Fixing the wrong name of aliases - Fix data race in UCP wireup - Fix segfault when libuct.so is reloaded - issue #3558 - Include Java sources in distribution - Handle EADDRNOTAVAIL in rdma_cm connection manager - Disable ibcm on RHEL7+ by default - Fix data race in UCP proxy endpoint - Static checker fixes - Fallback to ibv_create_cq() if ibv_create_cq_ex() returns ENOSYS - Fix malloc hooks test - Fix checking return status in ucp_client_server example - Fix gdrcopy libdir config value - Fix printing atomic capabilities in ucx_info - Fix perftest warmup iterations to be non-zero OBS-URL: https://build.opensuse.org/request/show/733589 OBS-URL: https://build.opensuse.org/package/show/science:HPC/openucx?expand=0&rev=33
2019-09-27 10:19:55 +02:00
Version: 1.6.0
Release: 0
Url: http://openucx.org/
#Git-Clone: git://github.com/openucx/ucx
#Git-Web: https://github.com/openucx/ucx
Source: https://github.com/openucx/ucx/releases/download/v%version/ucx-%version.tar.gz
Source1: baselibs.conf
Patch1: openucx-s390x-support.patch
BuildRequires: autoconf >= 2.63
BuildRequires: automake >= 1.10
BuildRequires: binutils-devel
BuildRequires: gcc-c++
BuildRequires: libibverbs-devel
%if 0%{?suse_version} < 1330
%ifnarch s390x
BuildRequires: libnuma-devel
%endif
%else
BuildRequires: libnuma-devel
%endif
BuildRequires: libtool
BuildRequires: pkg-config
BuildRequires: zlib-devel
BuildRoot: %{_tmppath}/%{name}-%{version}-build
ExclusiveArch: aarch64 %power64 x86_64 s390x
%description
Accepting request 733589 from home:NMoreyChaisemartin:branches:science:HPC - Update to v1.6.0 - Features: - Modular architecture for UCT transports - ROCm transport re-design: support for managed memory, direct copy, ROCm GDR - Random scheduling policy for DC transport - Optimized out-of-box settings for multi-rail - Added support for OmniPath (using Verbs) - Support for PCI atomics with IB transports - Reduced UCP address size for homogeneous environments - Bugfixes: - Multiple stability and performance improvements in TCP transport - Multiple stability fixed in Verbs and MLX5 transports - Multiple stability fixes in UCM memory hooks - Multiple stability fixes in UGNI transport - RPM Spec file cleanup - Fixing compilation issues with most recent clang and gcc compilers - Fixing the wrong name of aliases - Fix data race in UCP wireup - Fix segfault when libuct.so is reloaded - issue #3558 - Include Java sources in distribution - Handle EADDRNOTAVAIL in rdma_cm connection manager - Disable ibcm on RHEL7+ by default - Fix data race in UCP proxy endpoint - Static checker fixes - Fallback to ibv_create_cq() if ibv_create_cq_ex() returns ENOSYS - Fix malloc hooks test - Fix checking return status in ucp_client_server example - Fix gdrcopy libdir config value - Fix printing atomic capabilities in ucx_info - Fix perftest warmup iterations to be non-zero OBS-URL: https://build.opensuse.org/request/show/733589 OBS-URL: https://build.opensuse.org/package/show/science:HPC/openucx?expand=0&rev=33
2019-09-27 10:19:55 +02:00
UCX stands for 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, such as RDMA (InfiniBand, RoCE,
etc), Cray Gemini or Aries, for inter-node communication. If no such network is
available, TCP is used instead. UCX supports efficient transfer of data in
either main memory (RAM) or GPU memory (through CUDA and ROCm libraries).
In addition, UCX provides efficient intra-node communication, by leveraging the
following shared memory mechanisms: posix, sysv, cma, knem, and xpmem.
%package tools
Summary: OpenUCX utilities
Group: System/Console
%description tools
Miscallaneous utilities for Unified Communication X.
%package -n libucm0
Summary: Memory (un)happing hooks for Unified Communication X
Group: System/Libraries
%description -n libucm0
libucm is a standalone non-unloadable library which installs hooks
for virtual memory changes in the current process. Then, it calls
user-defined callbacks, which may potentially override the default
behavior, or just passively listen and update their own data. libucm
does not use libuct, to avoid making it non-unloadable as well, and
impelements a basic logging service which is safe to use from malloc
hooks.
%package -n libucm-devel
Summary: Development files for Unified Communication X Memory Hooks
Group: Development/Libraries/C and C++
Requires: libucm0 = %version
%description -n libucm-devel
libucm is a standalone non-unloadable library which installs hooks
for virtual memory changes in the current process.
%package -n libucp0
Summary: Infiniband Unified Communication Protocols
Group: System/Libraries
%description -n libucp0
High-level API uses UCT framework to construct protocols commonly
found in applications (MPI, OpenSHMEM, PGAS, etc.)
%package -n libucp-devel
Summary: Development files for Unified Communication Protocols (UC-P)
Group: Development/Libraries/C and C++
Requires: libucp0 = %version
%description -n libucp-devel
High-level API uses UCT framework to construct protocols commonly
found in applications (MPI, OpenSHMEM, PGAS, etc.)
%package -n libucs0
Summary: Infiniband Unicified Communication Services
Group: System/Libraries
%description -n libucs0
This framework provides basic infrastructure for component based
programming, memory management, and useful system utilities.
%package -n libucs-devel
Summary: Development files for Unified Communication Services (UC-S)
Group: Development/Libraries/C and C++
Requires: libucs0 = %version
%description -n libucs-devel
This framework provides basic infrastructure for component based
programming, memory management, and useful system utilities.
%package -n libuct0
Summary: Infiniband Unified Communication Transport
Group: System/Libraries
%description -n libuct0
Low-level API that expose basic network operations supported by
underlying hardware.
%package -n libuct-devel
Summary: Development files for Unified Communication Transport (UC-T)
Group: Development/Libraries/C and C++
Requires: libuct0 = %version
%description -n libuct-devel
Low-level API that expose basic network operations supported by
underlying hardware.
%prep
%setup -qn ucx-%version
%patch1
%build
autoreconf -fi
export UCX_CFLAGS="%optflags -Wno-error"
%ifarch x86_64
export UCX_CFLAGS="$UCX_CFLAGS -mno-avx"
%endif
%ifarch %ix86
export UCX_CFLAGS="$UCX_CFLAGS -mno-sse -mno-sse2"
%endif
%configure --disable-static --without-avx \
%if 0%{?suse_version} < 1330
%ifarch s390x
--disable-numa \
%endif
%endif
Accepting request 733589 from home:NMoreyChaisemartin:branches:science:HPC - Update to v1.6.0 - Features: - Modular architecture for UCT transports - ROCm transport re-design: support for managed memory, direct copy, ROCm GDR - Random scheduling policy for DC transport - Optimized out-of-box settings for multi-rail - Added support for OmniPath (using Verbs) - Support for PCI atomics with IB transports - Reduced UCP address size for homogeneous environments - Bugfixes: - Multiple stability and performance improvements in TCP transport - Multiple stability fixed in Verbs and MLX5 transports - Multiple stability fixes in UCM memory hooks - Multiple stability fixes in UGNI transport - RPM Spec file cleanup - Fixing compilation issues with most recent clang and gcc compilers - Fixing the wrong name of aliases - Fix data race in UCP wireup - Fix segfault when libuct.so is reloaded - issue #3558 - Include Java sources in distribution - Handle EADDRNOTAVAIL in rdma_cm connection manager - Disable ibcm on RHEL7+ by default - Fix data race in UCP proxy endpoint - Static checker fixes - Fallback to ibv_create_cq() if ibv_create_cq_ex() returns ENOSYS - Fix malloc hooks test - Fix checking return status in ucp_client_server example - Fix gdrcopy libdir config value - Fix printing atomic capabilities in ucx_info - Fix perftest warmup iterations to be non-zero OBS-URL: https://build.opensuse.org/request/show/733589 OBS-URL: https://build.opensuse.org/package/show/science:HPC/openucx?expand=0&rev=33
2019-09-27 10:19:55 +02:00
--docdir="%_docdir/%name" \
--disable-debug --disable-assertions \
--disable-params-check \
--with-rc --with-ud --with-dc \
--with-mlx5-dv --with-rdmacm
# Override BASE_CFLAGS to disable Werror (boo#1121267)
make %{?_smp_mflags} V=1 BASE_CFLAGS="-g -Wall"
%post -n libucp0 -p /sbin/ldconfig
%postun -n libucp0 -p /sbin/ldconfig
%post -n libucs0 -p /sbin/ldconfig
%postun -n libucs0 -p /sbin/ldconfig
%post -n libuct0 -p /sbin/ldconfig
%postun -n libuct0 -p /sbin/ldconfig
%post -n libucm0 -p /sbin/ldconfig
%postun -n libucm0 -p /sbin/ldconfig
%install
%make_install
rm -fv "%buildroot/%_libdir"/*.la
Accepting request 733589 from home:NMoreyChaisemartin:branches:science:HPC - Update to v1.6.0 - Features: - Modular architecture for UCT transports - ROCm transport re-design: support for managed memory, direct copy, ROCm GDR - Random scheduling policy for DC transport - Optimized out-of-box settings for multi-rail - Added support for OmniPath (using Verbs) - Support for PCI atomics with IB transports - Reduced UCP address size for homogeneous environments - Bugfixes: - Multiple stability and performance improvements in TCP transport - Multiple stability fixed in Verbs and MLX5 transports - Multiple stability fixes in UCM memory hooks - Multiple stability fixes in UGNI transport - RPM Spec file cleanup - Fixing compilation issues with most recent clang and gcc compilers - Fixing the wrong name of aliases - Fix data race in UCP wireup - Fix segfault when libuct.so is reloaded - issue #3558 - Include Java sources in distribution - Handle EADDRNOTAVAIL in rdma_cm connection manager - Disable ibcm on RHEL7+ by default - Fix data race in UCP proxy endpoint - Static checker fixes - Fallback to ibv_create_cq() if ibv_create_cq_ex() returns ENOSYS - Fix malloc hooks test - Fix checking return status in ucp_client_server example - Fix gdrcopy libdir config value - Fix printing atomic capabilities in ucx_info - Fix perftest warmup iterations to be non-zero OBS-URL: https://build.opensuse.org/request/show/733589 OBS-URL: https://build.opensuse.org/package/show/science:HPC/openucx?expand=0&rev=33
2019-09-27 10:19:55 +02:00
rm -fv "%buildroot/%_libdir"/ucx/*.la
# Rename example dir for consistency with the package name
mv %buildroot/%_datadir/ucx %buildroot/%_datadir/openucx
%files tools
%defattr(-,root,root)
%_bindir/ucx_*
%_datadir/%{name}/
%_libdir/pkgconfig/ucx.pc
%doc LICENSE NEWS
%files -n libucm0
%defattr(-,root,root)
%_libdir/libucm.so.*
%files -n libucm-devel
%defattr(-,root,root)
%_includedir/ucm/
%_libdir/libucm.so
%files -n libucp0
%defattr(-,root,root)
%_libdir/libucp.so.*
%files -n libucp-devel
%defattr(-,root,root)
%_includedir/ucp/
%_libdir/libucp.so
%files -n libucs0
%defattr(-,root,root)
%_libdir/libucs.so.*
%files -n libucs-devel
%defattr(-,root,root)
%_includedir/ucs/
%_libdir/libucs.so
%files -n libuct0
%defattr(-,root,root)
%_libdir/libuct.so.*
Accepting request 733589 from home:NMoreyChaisemartin:branches:science:HPC - Update to v1.6.0 - Features: - Modular architecture for UCT transports - ROCm transport re-design: support for managed memory, direct copy, ROCm GDR - Random scheduling policy for DC transport - Optimized out-of-box settings for multi-rail - Added support for OmniPath (using Verbs) - Support for PCI atomics with IB transports - Reduced UCP address size for homogeneous environments - Bugfixes: - Multiple stability and performance improvements in TCP transport - Multiple stability fixed in Verbs and MLX5 transports - Multiple stability fixes in UCM memory hooks - Multiple stability fixes in UGNI transport - RPM Spec file cleanup - Fixing compilation issues with most recent clang and gcc compilers - Fixing the wrong name of aliases - Fix data race in UCP wireup - Fix segfault when libuct.so is reloaded - issue #3558 - Include Java sources in distribution - Handle EADDRNOTAVAIL in rdma_cm connection manager - Disable ibcm on RHEL7+ by default - Fix data race in UCP proxy endpoint - Static checker fixes - Fallback to ibv_create_cq() if ibv_create_cq_ex() returns ENOSYS - Fix malloc hooks test - Fix checking return status in ucp_client_server example - Fix gdrcopy libdir config value - Fix printing atomic capabilities in ucx_info - Fix perftest warmup iterations to be non-zero OBS-URL: https://build.opensuse.org/request/show/733589 OBS-URL: https://build.opensuse.org/package/show/science:HPC/openucx?expand=0&rev=33
2019-09-27 10:19:55 +02:00
%dir %_libdir/ucx/
%_libdir/ucx/libuct_*.so.*
%files -n libuct-devel
%defattr(-,root,root)
%_includedir/uct/
%_libdir/libuct.so
%dir %_libdir/ucx/
Accepting request 733589 from home:NMoreyChaisemartin:branches:science:HPC - Update to v1.6.0 - Features: - Modular architecture for UCT transports - ROCm transport re-design: support for managed memory, direct copy, ROCm GDR - Random scheduling policy for DC transport - Optimized out-of-box settings for multi-rail - Added support for OmniPath (using Verbs) - Support for PCI atomics with IB transports - Reduced UCP address size for homogeneous environments - Bugfixes: - Multiple stability and performance improvements in TCP transport - Multiple stability fixed in Verbs and MLX5 transports - Multiple stability fixes in UCM memory hooks - Multiple stability fixes in UGNI transport - RPM Spec file cleanup - Fixing compilation issues with most recent clang and gcc compilers - Fixing the wrong name of aliases - Fix data race in UCP wireup - Fix segfault when libuct.so is reloaded - issue #3558 - Include Java sources in distribution - Handle EADDRNOTAVAIL in rdma_cm connection manager - Disable ibcm on RHEL7+ by default - Fix data race in UCP proxy endpoint - Static checker fixes - Fallback to ibv_create_cq() if ibv_create_cq_ex() returns ENOSYS - Fix malloc hooks test - Fix checking return status in ucp_client_server example - Fix gdrcopy libdir config value - Fix printing atomic capabilities in ucx_info - Fix perftest warmup iterations to be non-zero OBS-URL: https://build.opensuse.org/request/show/733589 OBS-URL: https://build.opensuse.org/package/show/science:HPC/openucx?expand=0&rev=33
2019-09-27 10:19:55 +02:00
%_libdir/ucx/libuct_*.so
%changelog