summaryrefslogtreecommitdiff
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