diff options
author | Ludovic Courtès <ludovic.courtes@inria.fr> | 2023-01-10 10:02:56 +0100 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2023-01-27 18:16:55 +0100 |
commit | 317ea0458927810754ab154228ace04ff7bab717 (patch) | |
tree | ce95ceb521a2dcc89fafd4fd3656deb02ca8f8e8 | |
parent | 729eabc6ae8aae32584408f6bbd4526ad21e3476 (diff) |
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'.
-rw-r--r-- | gnu/packages/mpi.scm | 19 | ||||
-rw-r--r-- | gnu/packages/opencl.scm | 5 |
2 files changed, 20 insertions, 4 deletions
diff --git a/gnu/packages/mpi.scm b/gnu/packages/mpi.scm index af2409aeab..70b14c30b3 100644 --- a/gnu/packages/mpi.scm +++ b/gnu/packages/mpi.scm @@ -1,6 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; 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 © 2016 Andreas Enge <andreas@enge.fr> ;;; 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. (package (inherit hwloc-1) - (version "2.8.0") + (version "2.9.0") (source (origin (method url-fetch) (uri (string-append "https://download.open-mpi.org/release/hwloc/v" @@ -151,7 +151,7 @@ bind processes, and much more.") "/hwloc-" version ".tar.bz2")) (sha256 (base32 - "1ha23yqfx9kfxm5fcj9m0fnyf0r2k6p4k88xxqishclcsky752il")))) + "11v8hnl6fdsdbm3wnz5gg88f2ghixjyl7jlfmywj293ab5iyjw10")))) ;; libnuma is no longer needed. (inputs (modify-inputs (package-inputs hwloc-1) @@ -167,6 +167,10 @@ bind processes, and much more.") (substitute* "tests/hwloc/linux-libnuma.c" (("numa_available\\(\\)") "-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 (lambda _ ;; 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 ;; UCX to not emit those warnings. (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)) (define-public python-mpi4py diff --git a/gnu/packages/opencl.scm b/gnu/packages/opencl.scm index c2715b498b..847284c427 100644 --- a/gnu/packages/opencl.scm +++ b/gnu/packages/opencl.scm @@ -306,7 +306,10 @@ back-end for the LLVM compiler framework.") (add-before 'check 'set-HOME (lambda _ (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/") (synopsis "Portable Computing Language (pocl), an OpenCL implementation") (description |