gnu: hwloc: Update to 2.9.0.
* gnu/packages/mpi.scm (hwloc-2): Update to 2.9.0. [arguments]: Add 'skip-test-that-requires-/sys' phase. (%openmpi-setup): Set 'HWLOC_SYNTHETIC' environment variable. * gnu/packages/opencl.scm (pocl)[arguments]: In 'set-HOME' phase, also set 'HWLOC_SYNTHETIC'.
This commit is contained in:
parent
729eabc6ae
commit
317ea04589
2 changed files with 20 additions and 4 deletions
|
@ -1,6 +1,6 @@
|
||||||
;;; GNU Guix --- Functional package management for GNU
|
;;; GNU Guix --- Functional package management for GNU
|
||||||
;;; Copyright © 2014, 2015, 2018, 2019 Eric Bavier <bavier@member.fsf.org>
|
;;; Copyright © 2014, 2015, 2018, 2019 Eric Bavier <bavier@member.fsf.org>
|
||||||
;;; Copyright © 2014-2022 Ludovic Courtès <ludo@gnu.org>
|
;;; Copyright © 2014-2023 Ludovic Courtès <ludo@gnu.org>
|
||||||
;;; Copyright © 2014 Ian Denhardt <ian@zenhack.net>
|
;;; Copyright © 2014 Ian Denhardt <ian@zenhack.net>
|
||||||
;;; Copyright © 2016 Andreas Enge <andreas@enge.fr>
|
;;; Copyright © 2016 Andreas Enge <andreas@enge.fr>
|
||||||
;;; Copyright © 2017 Dave Love <fx@gnu.org>
|
;;; Copyright © 2017 Dave Love <fx@gnu.org>
|
||||||
|
@ -143,7 +143,7 @@ bind processes, and much more.")
|
||||||
;; Note: 2.x isn't the default yet, see above.
|
;; Note: 2.x isn't the default yet, see above.
|
||||||
(package
|
(package
|
||||||
(inherit hwloc-1)
|
(inherit hwloc-1)
|
||||||
(version "2.8.0")
|
(version "2.9.0")
|
||||||
(source (origin
|
(source (origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (string-append "https://download.open-mpi.org/release/hwloc/v"
|
(uri (string-append "https://download.open-mpi.org/release/hwloc/v"
|
||||||
|
@ -151,7 +151,7 @@ bind processes, and much more.")
|
||||||
"/hwloc-" version ".tar.bz2"))
|
"/hwloc-" version ".tar.bz2"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"1ha23yqfx9kfxm5fcj9m0fnyf0r2k6p4k88xxqishclcsky752il"))))
|
"11v8hnl6fdsdbm3wnz5gg88f2ghixjyl7jlfmywj293ab5iyjw10"))))
|
||||||
|
|
||||||
;; libnuma is no longer needed.
|
;; libnuma is no longer needed.
|
||||||
(inputs (modify-inputs (package-inputs hwloc-1)
|
(inputs (modify-inputs (package-inputs hwloc-1)
|
||||||
|
@ -167,6 +167,10 @@ bind processes, and much more.")
|
||||||
(substitute* "tests/hwloc/linux-libnuma.c"
|
(substitute* "tests/hwloc/linux-libnuma.c"
|
||||||
(("numa_available\\(\\)")
|
(("numa_available\\(\\)")
|
||||||
"-1"))))
|
"-1"))))
|
||||||
|
(add-before 'check 'skip-test-that-requires-/sys
|
||||||
|
(lambda _
|
||||||
|
;; 'test-gather-topology.sh' requires /sys as of 2.9.0; skip it.
|
||||||
|
(setenv "HWLOC_TEST_GATHER_TOPOLOGY" "0")))
|
||||||
(add-before 'check 'skip-test-that-fails-on-qemu
|
(add-before 'check 'skip-test-that-fails-on-qemu
|
||||||
(lambda _
|
(lambda _
|
||||||
;; Skip test that fails on emulated hardware due to QEMU bug:
|
;; Skip test that fails on emulated hardware due to QEMU bug:
|
||||||
|
@ -383,6 +387,15 @@ only provides @code{MPI_THREAD_FUNNELED}.")))
|
||||||
;; compare stdout, such as that of 'hdf5-parallel-openmpi'. Thus, tell
|
;; compare stdout, such as that of 'hdf5-parallel-openmpi'. Thus, tell
|
||||||
;; UCX to not emit those warnings.
|
;; UCX to not emit those warnings.
|
||||||
(setenv "UCX_LOG_LEVEL" "error")
|
(setenv "UCX_LOG_LEVEL" "error")
|
||||||
|
|
||||||
|
;; Starting from 2.9.0, hwloc fails when /sys is unavailable:
|
||||||
|
;;
|
||||||
|
;; [hwloc/linux] failed to find sysfs cpu topology directory, aborting linux discovery.
|
||||||
|
;;
|
||||||
|
;; This in turn breaks Open MPI users. To work around it, define a fake
|
||||||
|
;; topology with 4 cores. That silently disables CPU binding, though
|
||||||
|
;; 'get_cpubind' will report there's no binding.
|
||||||
|
(setenv "HWLOC_SYNTHETIC" "4")
|
||||||
#t))
|
#t))
|
||||||
|
|
||||||
(define-public python-mpi4py
|
(define-public python-mpi4py
|
||||||
|
|
|
@ -306,7 +306,10 @@ back-end for the LLVM compiler framework.")
|
||||||
(add-before 'check 'set-HOME
|
(add-before 'check 'set-HOME
|
||||||
(lambda _
|
(lambda _
|
||||||
(setenv "HOME" "/tmp")
|
(setenv "HOME" "/tmp")
|
||||||
#t)))))
|
|
||||||
|
;; Since 2.9.0, hwloc fails when /sys is missing, so provide a
|
||||||
|
;; fake topology.
|
||||||
|
(setenv "HWLOC_SYNTHETIC" "4"))))))
|
||||||
(home-page "http://portablecl.org/")
|
(home-page "http://portablecl.org/")
|
||||||
(synopsis "Portable Computing Language (pocl), an OpenCL implementation")
|
(synopsis "Portable Computing Language (pocl), an OpenCL implementation")
|
||||||
(description
|
(description
|
||||||
|
|
Reference in a new issue