From 317ea0458927810754ab154228ace04ff7bab717 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Tue, 10 Jan 2023 10:02:56 +0100 Subject: 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'. --- gnu/packages/mpi.scm | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) (limited to 'gnu/packages/mpi.scm') 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 -;;; Copyright © 2014-2022 Ludovic Courtès +;;; Copyright © 2014-2023 Ludovic Courtès ;;; Copyright © 2014 Ian Denhardt ;;; Copyright © 2016 Andreas Enge ;;; Copyright © 2017 Dave Love @@ -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 -- cgit v1.2.3