summary refs log tree commit diff
path: root/gnu/packages/mpi.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/mpi.scm')
-rw-r--r--gnu/packages/mpi.scm90
1 files changed, 38 insertions, 52 deletions
diff --git a/gnu/packages/mpi.scm b/gnu/packages/mpi.scm
index d1686f9afa..b98b713b9c 100644
--- a/gnu/packages/mpi.scm
+++ b/gnu/packages/mpi.scm
@@ -57,7 +57,7 @@
   ;; to migrate to 2.0.
   (package
     (name "hwloc")
-    (version "1.11.12")
+    (version "1.11.13")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://www.open-mpi.org/software/hwloc/v"
@@ -65,7 +65,8 @@
                                   "/downloads/hwloc-" version ".tar.bz2"))
               (sha256
                (base32
-                "0za1b9lvrm3rhn0lrxja5f64r0aq1qs4m0pxn1ji2mbi8ndppyyx"))))
+                "1j69p8a1pjpbpwn4w7l4dfxmaxxqikchjzqw1ncw05zmcmvlnjd4"))
+              (patches (search-patches "hwloc-1-test-btrfs.patch"))))
 
     (properties
      ;; Tell the 'generic-html' updater to monitor this URL for updates.
@@ -78,15 +79,8 @@
                "doc"           ;400+ section 3 man pages
                "debug"))
     (inputs
-     `(("libx11" ,libx11)
-       ("cairo" ,cairo)
-       ("ncurses" ,ncurses)
-       ("expat" ,expat)
-       ,@(if (not (string-prefix? "armhf"
-                                  (or (%current-target-system)
-                                      (%current-system))))
-             `(("numactl" ,numactl))
-             '())))
+     (append (list libx11 cairo ncurses expat)
+             (if (target-arm32?) '() (list numactl))))
     (propagated-inputs
      ;; hwloc.pc lists it in 'Requires.private'.
      (list libpciaccess))
@@ -102,8 +96,7 @@
              ;; machines: <https://github.com/open-mpi/hwloc/issues/213>.
              (substitute* "tests/linux-libnuma.c"
                (("numa_available\\(\\)")
-                "-1"))
-             #t))
+                "-1"))))
          (add-after 'install 'refine-libnuma
            ;; Give -L arguments for libraries to avoid propagation
            (lambda* (#:key inputs outputs #:allow-other-keys)
@@ -120,8 +113,7 @@
                ;; "lib" output doesn't refer to "out".
                (substitute* (string-append lib "/lib/pkgconfig/hwloc.pc")
                  (("^.*prefix=.*$")
-                  ""))
-               #t)))
+                  "")))))
          (add-after 'install 'move-man3-pages
            (lambda* (#:key outputs #:allow-other-keys)
              ;; Move section 3 man pages to the "doc" output.
@@ -129,8 +121,8 @@
                    (doc (assoc-ref outputs "doc")))
                (copy-recursively (string-append out "/share/man/man3")
                                  (string-append doc "/share/man/man3"))
-               (delete-file-recursively (string-append out "/share/man/man3"))
-               #t))))))
+               (delete-file-recursively
+                (string-append out "/share/man/man3"))))))))
     (home-page "https://www.open-mpi.org/projects/hwloc/")
     (synopsis "Abstraction of hardware architectures")
     (description
@@ -151,7 +143,7 @@ bind processes, and much more.")
   ;; Note: 2.x isn't the default yet, see above.
   (package
     (inherit hwloc-1)
-    (version "2.7.0")
+    (version "2.7.1")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://download.open-mpi.org/release/hwloc/v"
@@ -159,10 +151,11 @@ bind processes, and much more.")
                                   "/hwloc-" version ".tar.bz2"))
               (sha256
                (base32
-                "1q440fwvhnxz6j8k5bn3bxj86b3lzbr8fgib78l4iq6gxd9yx302"))))
+                "13ajxwshxl1pa8b5gnkmm7hcg97m6xrlgz8vj1hmsb57qcv1skhd"))))
 
     ;; libnuma is no longer needed.
-    (inputs (alist-delete "numactl" (package-inputs hwloc-1)))
+    (inputs (modify-inputs (package-inputs hwloc-1)
+              (delete "numactl")))
     (arguments
      (substitute-keyword-arguments (package-arguments hwloc-1)
        ((#:phases phases)
@@ -173,16 +166,14 @@ bind processes, and much more.")
                ;; some machines: <https://github.com/open-mpi/hwloc/issues/213>.
                (substitute* "tests/hwloc/linux-libnuma.c"
                  (("numa_available\\(\\)")
-                  "-1"))
-               #t))
+                  "-1"))))
            (add-before 'check 'skip-test-that-fails-on-qemu
              (lambda _
                ;; Skip test that fails on emulated hardware due to QEMU bug:
                ;; <https://bugs.gnu.org/40342>.
                (substitute* "tests/hwloc/hwloc_get_last_cpu_location.c"
                  (("hwloc_topology_init" all)
-                  (string-append "exit (77);\n" all)))
-               #t))))))))
+                  (string-append "exit (77);\n" all)))))))))))
 
 (define-deprecated hwloc-2.0 hwloc-2)
 
@@ -193,7 +184,7 @@ bind processes, and much more.")
 (define-public openmpi
   (package
     (name "openmpi")
-    (version "4.1.1")
+    (version "4.1.3")
     (source
      (origin
       (method url-fetch)
@@ -201,7 +192,7 @@ bind processes, and much more.")
                           (version-major+minor version)
                           "/downloads/openmpi-" version ".tar.bz2"))
       (sha256
-       (base32 "1nkwq123vvmggcay48snm9qqmrh0bdzpln0l1jnp26niidvplkz2"))
+       (base32 "0fqagib5ic0fb3rbl77z90gjrmyqk2qgyrd4f4w5vdggai6d109x"))
       (patches (search-patches "openmpi-mtl-priorities.patch"))))
 
     (properties
@@ -211,26 +202,24 @@ bind processes, and much more.")
 
     (build-system gnu-build-system)
     (inputs
-     `(("hwloc" ,hwloc-2 "lib")
-       ("gfortran" ,gfortran)
-       ("libfabric" ,libfabric)
-       ("libevent" ,libevent)
-       ("opensm" ,opensm)
-       ,@(if (and (not (%current-target-system))
-                  (member (%current-system) (package-supported-systems psm)))
-             `(("psm" ,psm))
-             '())
-       ,@(if (and (not (%current-target-system))
-                  (member (%current-system) (package-supported-systems psm2)))
-             `(("psm2" ,psm2))
-             '())
-       ,@(if (and (not (%current-target-system))
-                  (member (%current-system) (package-supported-systems ucx)))
-             `(("ucx" ,ucx))
-             '())
-       ("rdma-core" ,rdma-core)
-       ("valgrind" ,valgrind)
-       ("slurm" ,slurm)))              ;for PMI support (launching via "srun")
+     (let ((if-supported
+            (lambda (package)
+              (if (and (not (%current-target-system))
+                       (member (%current-system)
+                               (package-supported-systems package)))
+                  (list package)
+                  '()))))
+       (append (list `(,hwloc-2 "lib")
+                     gfortran
+                     libfabric
+                     libevent
+                     opensm)
+               (if-supported psm)
+               (if-supported psm2)
+               (if-supported ucx)
+               (list rdma-core
+                     valgrind
+                     slurm))))         ;for PMI support (launching via "srun")
     (native-inputs
      (list pkg-config perl))
     (outputs '("out" "debug"))
@@ -282,20 +271,17 @@ bind processes, and much more.")
                       (substitute*
                           '("./ompi/mca/io/romio321/src/io_romio321_component.c")
                         (("MCA_io_romio321_COMPLETE_CONFIGURE_FLAGS")
-                         "\"[elided to reduce closure]\""))
-                      #t))
+                         "\"[elided to reduce closure]\""))))
                   (add-before 'build 'scrub-timestamps ;reproducibility
                     (lambda _
                       (substitute* '("ompi/tools/ompi_info/param.c"
                                      "orte/tools/orte-info/param.c"
                                      "oshmem/tools/oshmem_info/param.c")
-                        ((".*(Built|Configured) on.*") ""))
-                      #t))
+                        ((".*(Built|Configured) on.*") ""))))
                   (add-after 'install 'remove-logs ;reproducibility
                     (lambda* (#:key outputs #:allow-other-keys)
                       (let ((out (assoc-ref outputs "out")))
-                        (for-each delete-file (find-files out "config.log"))
-                        #t))))))
+                        (for-each delete-file (find-files out "config.log"))))))))
     (home-page "https://www.open-mpi.org")
     (synopsis "MPI-3 implementation")
     (description