+
+(define-public ucx
+ (package
+ (name "ucx")
+ (version "1.6.1")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/openucx/ucx.git")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0x3clvy716i7va4m4adgx6ihjsfnzrkdizhxz5v52944dkglpc8n"))
+ (patches (search-patches "ucx-tcp-iface-ioctl.patch"))))
+ (build-system gnu-build-system)
+ (arguments
+ '( ;; These are some of the flags found in 'contrib/configure-release'.
+ #:configure-flags (list
+ "--disable-static"
+
+ ;; XXX: Disable optimizations specific to the build
+ ;; machine (AVX, etc.) There's apparently no way to
+ ;; have them picked up at load time.
+ "--disable-optimizations"
+
+ "--disable-logging"
+ "--disable-debug"
+ "--disable-assertions"
+ "--disable-params-check"
+
+ (string-append "--with-verbs="
+ (assoc-ref %build-inputs
+ "rdma-core"))
+
+ (string-append "--with-rdmacm="
+ (assoc-ref %build-inputs
+ "rdma-core")))
+
+ ;; Be verbose so that compiler flags are displayed.
+ #:make-flags '("V=1")))
+ (native-inputs
+ `(("autoconf" ,autoconf)
+ ("automake" ,automake)
+ ("libtool" ,libtool)
+ ("pkg-config" ,pkg-config)))
+ (inputs
+ `(("numactl" ,numactl)
+ ("rdma-core" ,rdma-core)))
+ (synopsis "Optimized communication layer for message passing in HPC")
+ (description
+ "Unified Communication X (UCX) provides an optimized communication layer
+for message passing (MPI), portable global address space (PGAS) languages and
+run-time support libraries, as well as RPC and data-centric applications.
+
+UCX utilizes high-speed networks for inter-node communication, and shared
+memory mechanisms for efficient intra-node communication.")
+ (home-page "https://www.openucx.org/")
+ (license bsd-3)
+
+ ;; <ucm/bistro/bistro.h> lists only PowerPC64, AArch64, and x86_64 as
+ ;; supported.
+ (supported-systems '("x86_64-linux" "aarch64-linux"))))