guix-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

01/09: gnu: hwloc: Update to 2.9.0.


From: guix-commits
Subject: 01/09: gnu: hwloc: Update to 2.9.0.
Date: Fri, 27 Jan 2023 12:18:15 -0500 (EST)

civodul pushed a commit to branch master
in repository guix.

commit 317ea0458927810754ab154228ace04ff7bab717
Author: Ludovic Courtès <ludovic.courtes@inria.fr>
AuthorDate: Tue Jan 10 10:02:56 2023 +0100

    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 ++++++++++++++++---
 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



reply via email to

[Prev in Thread] Current Thread [Next in Thread]