guix-patches
[Top][All Lists]
Advanced

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

[bug#39588] gnu: Add mpich, scalapack-mpich, mumps-mpich, pt-scotch-mpic


From: Ludovic Courtès
Subject: [bug#39588] gnu: Add mpich, scalapack-mpich, mumps-mpich, pt-scotch-mpich, python-mpi4py-mpich
Date: Thu, 20 Feb 2020 10:38:19 +0100
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/26.3 (gnu/linux)

Hi Maurice,

Maurice Brémond <address@hidden> skribis:

> This fails on my machine for the pt-scotch check (there is the same
> error with scalapack check)
>
> Invalid error code (-2) (error ring index 127 invalid)
> INTERNAL ERROR: invalid error code fffffffe (Ring Index out of range) in 
> MPID_nem_tcp_init:373
> Fatal error in PMPI_Init: Other MPI error, error stack:
> MPIR_Init_thread(586)..............: 
> MPID_Init(224).....................: channel initialization failed
> MPIDI_CH3_Init(105)................: 
> MPID_nem_init(324).................: 
> MPID_nem_tcp_init(175).............: 
> MPID_nem_tcp_get_business_card(401): 
> MPID_nem_tcp_init(373).............: gethostbyname failed, localhost (errno 0)
>
> If I go into the build directory and launch the check manually after
> sourcing the environment-variables file, it works...

My version of the patch must have changed the default driver or
something along these lines.

tcp_init.c:373 in MPICH reads this:

--8<---------------cut here---------------start------------->8---
    /* If we don't have an IP address, try to get it from the name */
    if (!ifaddrFound) {
        mpi_errno = MPL_get_sockaddr(ifname_string, p_addr);
        MPIR_ERR_CHKANDJUMP2(mpi_errno, mpi_errno, MPI_ERR_OTHER, 
"**gethostbyname", "**gethostbyname %s %d", ifname_string, h_errno);
    }
--8<---------------cut here---------------end--------------->8---

‘MPL_get_sockaddr’ uses ‘getifaddrs’ to get the list of local
interfaces, which in turn is implemented in terms of netlink requests in
libc.

I tried to reproduce it without success, but I guess my example MPI
program is too simple to trigger the issue:

--8<---------------cut here---------------start------------->8---
$ guix build -f mpich.scm
substitute: updating substitutes from 'https://ci.guix.gnu.org'... 100.0%
La jena derivo estos konstruata:
   /gnu/store/mgcwnmicw696i3g98rljdg92ra6ilq4n-mpi-init.drv
building /gnu/store/mgcwnmicw696i3g98rljdg92ra6ilq4n-mpi-init.drv...
/gnu/store/pkbg6kllx5xb8vb6kwrwm7qm4rnpmhia-mpich-3.3.2/bin/mpicc: line 215: 
expr: command not found
/gnu/store/pkbg6kllx5xb8vb6kwrwm7qm4rnpmhia-mpich-3.3.2/bin/mpicc: line 215: 
expr: command not found
/gnu/store/pkbg6kllx5xb8vb6kwrwm7qm4rnpmhia-mpich-3.3.2/bin/mpicc: line 215: 
expr: command not found
/gnu/store/pkbg6kllx5xb8vb6kwrwm7qm4rnpmhia-mpich-3.3.2/bin/mpicc: line 215: 
expr: command not found
/gnu/store/pkbg6kllx5xb8vb6kwrwm7qm4rnpmhia-mpich-3.3.2/bin/mpicc: line 215: 
expr: command not found
successfully built /gnu/store/mgcwnmicw696i3g98rljdg92ra6ilq4n-mpi-init.drv
/gnu/store/cmdh27sg2hqh2p0jhxz33xgfmsxd5hmz-mpi-init
$ /gnu/store/cmdh27sg2hqh2p0jhxz33xgfmsxd5hmz-mpi-init
$ cat mpich.scm
(use-modules (guix) (gnu))

(define code
  (plain-file "mpi.c" "
#include <mpi.h>

int main (int argc, char *argv[]) { return MPI_Init (&argc, &argv);} "))

(define toolchain (specification->package "gcc-toolchain"))
(define mpich (specification->package "mpich"))

(computed-file "mpi-init"
               (with-imported-modules '((guix build utils))
                 #~(begin
                     (use-modules (guix build utils))

                     (setenv "PATH"
                             (string-append #$(file-append toolchain "/bin") ":"
                                            #$(file-append mpich "/bin")))
                     (setenv "CPATH" #$(file-append mpich "/include"))
                     (setenv "LIBRARY_PATH"
                             (string-append #$(file-append mpich "/lib") ":"
                                            #$(file-append toolchain "/lib")))
                     (invoke "mpicc" "-o" #$output "-Wall" "-g"
                             #$code)

                     ;; Run the MPI code in the build environment.
                     (invoke #$output))))
--8<---------------cut here---------------end--------------->8---

Ideas?

Could you perhaps strace the pt-scotch test that fails so we can see if
there’s anything obvious, such as code that browses /sys or similar?

TIA,
Ludo’.





reply via email to

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