gnu: Remove ".git" from "https://github/…/….git".
[jackhill/guix/guix.git] / gnu / packages / fabric-management.scm
index 33e43a9..0e8b388 100644 (file)
@@ -1,7 +1,8 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2017 Dave Love <fx@gnu.org>
-;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2019 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2019 Ludovic Courtès <ludo@gnu.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -22,6 +23,7 @@
   #:use-module (guix packages)
   #:use-module (guix licenses)
   #:use-module (guix download)
+  #:use-module (guix git-download)
   #:use-module (guix utils)
   #:use-module (guix build-system gnu)
   #:use-module (gnu packages)
@@ -43,7 +45,7 @@
 (define-public opensm
   (package
     (name "opensm")
-    (version "3.3.21")
+    (version "3.3.22")
     (source
      (origin
        (method url-fetch)
@@ -51,7 +53,7 @@
         (string-append "https://github.com/linux-rdma/opensm/releases/download/"
                        version "/opensm-" version ".tar.gz"))
        (sha256
-        (base32 "0j4vp118w1l47vs4had46ynybklyacxjlya0r15jg0y01l4j9l2h"))))
+        (base32 "19scwwpwqhqsyq4hbr5cflcmypss828lalxxd36yby7mbimca38y"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("bison" ,bison)
@@ -175,3 +177,66 @@ interface to this library is not guaranteed to be stable.")
 testing InfiniBand networks.")
     (home-page "https://www.openfabrics.org/downloads/ibutils/")
     (license bsd-2)))
+
+(define-public ucx
+  (package
+    (name "ucx")
+    (version "1.6.1")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/openucx/ucx")
+                    (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"))))