openucx/openucx.spec

234 lines
6.6 KiB
RPMSpec
Raw Normal View History

#
# spec file for package openucx
#
# Copyright (c) 2022 SUSE LLC
#
# 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
Accepting request 921702 from home:NMoreyChaisemartin:branches:science:HPC - Update to v1.11.1 (jsc#SLE-19260) - Core: - Added support for UCX monitoring using virtual file system (VFS)/FUSE - Added support for applications with static CUDA runtime linking - Added support for a configuration file - Updated clang format configuration - UCP - Added rendezvous API for active messages - Added user-defined name to context, worker, and endpoint objects - Added flag to silence request leak check - Added API for endpoint performance evaluation - Added API - ucp_request_query - Added API - ucp_lib_query - Added bandwidth optimizations for new protocols multi-lane - Added support for multi-rail over lanes with BW ratio >= 1/4 - Added support for tracking outstanding requests and aborting those in case of connection failure - Refactored keep-alive protocol - Added device id to wireup protocol - Added support up to 128 transport layer resources in UCP context - Added support CUDA memory allocations with ucp_mem_map - Increased UCP_WORKER_MAX_EP_CONFIG to 64 - Adjusted memory type zcopy threshold when UCX_ZCOPY_THRESH set - Refactored wireup protocols, rendezvous, get, zcopy protocols - Added put zcopy multi-rail - Improved logging for new protocols - Added system topology information - Added new protocols for eager offload protocols - UCT - Extended connection establishment API OBS-URL: https://build.opensuse.org/request/show/921702 OBS-URL: https://build.opensuse.org/package/show/science:HPC/openucx?expand=0&rev=46
2021-09-27 11:00:18 +02:00
Version: 1.11.1
Release: 0
Summary: Communication layer for Message Passing (MPI)
License: BSD-3-Clause
Group: Development/Libraries/C and C++
Accepting request 811684 from home:NMoreyChaisemartin:branches:science:HPC - Update to v1.8.0 - Features: - Improved detection for DEVX support - Improved TCP scalability - Added support for ROCM to perftest - Added support for different source and target memory types to perftest - Added optimized memcpy for ROCM devices - Added hardware tag-matching for CUDA buffers - Added support for CUDA and ROCM managed memories - Added support for client/server disconnect protocol over rdma connection manager - Added support for striding receive queue for hardware tag-matching - Added XPMEM-based rendezvous protocol for shared memory - Added support shared memory communication between containers on same machine - Added support for multi-threaded RDMA memory registration for large regions - Added new test cases to Azure CI - Added support for multiple listening transports - Added UCT socket-based connection manager transport - Updated API for UCT component management - Added API to retrieve the listening port - Added UCP active message API - Removed deprecated API for querying UCT memory domains - Refactored server/client examples - Added support for dlopen interception in UCM - Added support for PCIe atomics - Updated Java API: added support for most of UCP layer operations - Updated support for Mellanox DevX API - Added multiple UCT/TCP transport performance optimizations - Optimized memcpy() for Intel platforms - Added protection from non-UCX socket based app connections - Improved search time for PKEY object - Enabled gtest over IPv6 interfaces - Updated Mellanox and Bull device IDs - Added support for CUDA_VISIBLE_DEVICES - Increased limits for CUDA IPC registration - Bugfixes: - Multiple fixes in JUCX - Fixes in UCP thread safety - Fixes for most recent versions GCC, PGI, and ICC - Fixes for CPU affinity on Azure instances - Fixes in XPMEM support on PPC64 - Performance fixes in CUDA IPC - Fixes in RDMA CM flows - Multiple fixes in TCP transport - Multiple fixes in documentation - Fixes in transport lane selection logic - Fixes in Java jar build - Fixes in socket connection manager for Nvidia DGX-2 platform - Multiple fixes in UCP, UCT, UCM libraries - Multiple fixes for BSD and Mac OS systems - Fixes for Clang compiler - Fix CPU optimization configuration options - Fix JUCX build on GPU nodes - Fix in Azure release pipeline flow - Fix in CUDA memory hooks management - Fix in GPU memory peer direct gtest - Fix in TCP connection establishment flow - Fix in GPU IPC check - Fix in CUDA Jenkins test flow - Multiple fixes in CUDA IPC flow - Fix adding missing header files - Fix to prevent failures in presence of VPN enabled Ethernet interfaces - Refresh openucx-s390x-support.patch against new version OBS-URL: https://build.opensuse.org/request/show/811684 OBS-URL: https://build.opensuse.org/package/show/science:HPC/openucx?expand=0&rev=37
2020-06-05 10:02:58 +02:00
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
Patch2: ucm-fix-UCX_MEM_MALLOC_RELOC.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
UCX stands for Unified Communication X. UCX provides a communication
layer for Message Passing (MPI), PGAS/OpenSHMEM libraries and
RPC/data-centric applications. UCX utilizes networks such as RDMA
(InfiniBand, RoCE, etc), Cray Gemini or Aries, for inter-node
communication, or TCP. UCX supports transfer of data in either main
memory (RAM) or GPU memory (through CUDA and ROCm libraries). UCX
provides intra-node communication by using shared memory mechanisms.
%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.
%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 infrastructure for component based
programming, memory management, and 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 infrastructure for component based
programming, memory management, and system utilities.
%package -n libuct0
Summary: Infiniband Unified Communication Transport
Group: System/Libraries
%description -n libuct0
Low-level API that expose 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 network operations supported by underlying
hardware.
%prep
%setup -qn ucx-%version
%ifarch s390x
%patch1
%endif
%patch2
%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
Accepting request 921702 from home:NMoreyChaisemartin:branches:science:HPC - Update to v1.11.1 (jsc#SLE-19260) - Core: - Added support for UCX monitoring using virtual file system (VFS)/FUSE - Added support for applications with static CUDA runtime linking - Added support for a configuration file - Updated clang format configuration - UCP - Added rendezvous API for active messages - Added user-defined name to context, worker, and endpoint objects - Added flag to silence request leak check - Added API for endpoint performance evaluation - Added API - ucp_request_query - Added API - ucp_lib_query - Added bandwidth optimizations for new protocols multi-lane - Added support for multi-rail over lanes with BW ratio >= 1/4 - Added support for tracking outstanding requests and aborting those in case of connection failure - Refactored keep-alive protocol - Added device id to wireup protocol - Added support up to 128 transport layer resources in UCP context - Added support CUDA memory allocations with ucp_mem_map - Increased UCP_WORKER_MAX_EP_CONFIG to 64 - Adjusted memory type zcopy threshold when UCX_ZCOPY_THRESH set - Refactored wireup protocols, rendezvous, get, zcopy protocols - Added put zcopy multi-rail - Improved logging for new protocols - Added system topology information - Added new protocols for eager offload protocols - UCT - Extended connection establishment API OBS-URL: https://build.opensuse.org/request/show/921702 OBS-URL: https://build.opensuse.org/package/show/science:HPC/openucx?expand=0&rev=46
2021-09-27 11:00:18 +02:00
# io_demo should not be in %{bindir} and more likely in %{libexec}
mkdir -p %buildroot/%_libexecdir/%{name}/
mv %buildroot/%_bindir/io_demo %buildroot/%_libexecdir/%{name}/
%files tools
%defattr(-,root,root)
%_bindir/ucx_*
%_datadir/%{name}/
Accepting request 921702 from home:NMoreyChaisemartin:branches:science:HPC - Update to v1.11.1 (jsc#SLE-19260) - Core: - Added support for UCX monitoring using virtual file system (VFS)/FUSE - Added support for applications with static CUDA runtime linking - Added support for a configuration file - Updated clang format configuration - UCP - Added rendezvous API for active messages - Added user-defined name to context, worker, and endpoint objects - Added flag to silence request leak check - Added API for endpoint performance evaluation - Added API - ucp_request_query - Added API - ucp_lib_query - Added bandwidth optimizations for new protocols multi-lane - Added support for multi-rail over lanes with BW ratio >= 1/4 - Added support for tracking outstanding requests and aborting those in case of connection failure - Refactored keep-alive protocol - Added device id to wireup protocol - Added support up to 128 transport layer resources in UCP context - Added support CUDA memory allocations with ucp_mem_map - Increased UCP_WORKER_MAX_EP_CONFIG to 64 - Adjusted memory type zcopy threshold when UCX_ZCOPY_THRESH set - Refactored wireup protocols, rendezvous, get, zcopy protocols - Added put zcopy multi-rail - Improved logging for new protocols - Added system topology information - Added new protocols for eager offload protocols - UCT - Extended connection establishment API OBS-URL: https://build.opensuse.org/request/show/921702 OBS-URL: https://build.opensuse.org/package/show/science:HPC/openucx?expand=0&rev=46
2021-09-27 11:00:18 +02:00
%_libexecdir/%{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