* [bug#31434] [PATCH 0/2] OpenMPI 3.0
@ 2018-05-12 16:01 Ludovic Courtès
2018-05-12 16:02 ` [bug#31434] [PATCH 1/2] gnu: superlu-dist: Update to 5.3.0 Ludovic Courtès
` (2 more replies)
0 siblings, 3 replies; 6+ messages in thread
From: Ludovic Courtès @ 2018-05-12 16:01 UTC (permalink / raw)
To: 31434; +Cc: bavier
Hello,
The attached patch updates OpenMPI to 3.0.1. The ‘superlu-dist’ upgrade
was necessary to get there.
I was able to rebuild everything that depends on it on x86_64, except
‘dealii-openmpi’, where GCC would eat all the memory of the machine
before completing (I suppose it might work with --cores=1 but I haven’t
tried.)
Ludo’.
Ludovic Courtès (2):
gnu: superlu-dist: Update to 5.3.0.
gnu: openmpi: Update to 3.0.1.
gnu/packages/maths.scm | 87 ++++++++++++++++++++++++++++++++++--------
gnu/packages/mpi.scm | 8 ++--
2 files changed, 76 insertions(+), 19 deletions(-)
--
2.17.0
^ permalink raw reply [flat|nested] 6+ messages in thread
* [bug#31434] [PATCH 1/2] gnu: superlu-dist: Update to 5.3.0.
2018-05-12 16:01 [bug#31434] [PATCH 0/2] OpenMPI 3.0 Ludovic Courtès
@ 2018-05-12 16:02 ` Ludovic Courtès
2018-05-12 16:02 ` [bug#31434] [PATCH 2/2] gnu: openmpi: Update to 3.0.1 Ludovic Courtès
2018-05-23 8:09 ` [bug#31434] [PATCH 0/2] OpenMPI 3.0 Ludovic Courtès
2018-05-23 12:00 ` [bug#31434] " Ludovic Courtès
2 siblings, 1 reply; 6+ messages in thread
From: Ludovic Courtès @ 2018-05-12 16:02 UTC (permalink / raw)
To: 31434; +Cc: bavier, Ludovic Courtès
From: Ludovic Courtès <ludovic.courtes@inria.fr>
* gnu/packages/maths.scm (superlu-dist): Update to 5.3.0.
[source](snippet): Adapt file name and function names to new version.
Remove 'delete-file' call.
---
gnu/packages/maths.scm | 13 ++++++-------
1 file changed, 6 insertions(+), 7 deletions(-)
diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm
index 2e6f79ad5..d2edecc54 100644
--- a/gnu/packages/maths.scm
+++ b/gnu/packages/maths.scm
@@ -2109,35 +2109,34 @@ also provides threshold-based ILU factorization preconditioners.")
(define-public superlu-dist
(package
(name "superlu-dist")
- (version "3.3")
+ (version "5.3.0")
(source
(origin
(method url-fetch)
(uri (string-append "http://crd-legacy.lbl.gov/~xiaoye/SuperLU/"
"superlu_dist_" version ".tar.gz"))
(sha256
- (base32 "1hnak09yxxp026blq8zhrl7685yip16svwngh1wysqxf8z48vzfj"))
- (modules '((guix build utils)))
+ (base32 "0ja5ihqivkda1wd58y4lmzvmwssm9g91f70c5q0fzwhng6580h6y"))
+ (modules '((guix build utils)))
(snippet
;; Replace the non-free implementation of MC64 with a stub
'(begin
(use-modules (ice-9 regex)
(ice-9 rdelim))
- (call-with-output-file "SRC/mc64ad.c"
+ (call-with-output-file "SRC/mc64ad_dist.c"
(lambda (port)
(display "
#include <stdio.h>
#include <stdlib.h>
-void mc64id_(int *a) {
+void mc64id_dist(int *a) {
fprintf (stderr, \"SuperLU_DIST: non-free MC64 not available. Aborting.\\n\");
abort ();
}
-void mc64ad_ (int *a, int *b, int *c, int *d, int *e, double *f, int *g,
+void mc64ad_dist (int *a, int *b, int *c, int *d, int *e, double *f, int *g,
int *h, int *i, int *j, int *k, double *l, int *m, int *n) {
fprintf (stderr, \"SuperLU_DIST: non-free MC64 not available. Aborting.\\n\");
abort ();
}\n" port)))
- (delete-file "SRC/mc64ad.f.bak")
(substitute* "SRC/util.c" ;adjust default algorithm
(("RowPerm[[:blank:]]*=[[:blank:]]*LargeDiag")
"RowPerm = NOROWPERM"))))
--
2.17.0
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [bug#31434] [PATCH 2/2] gnu: openmpi: Update to 3.0.1.
2018-05-12 16:02 ` [bug#31434] [PATCH 1/2] gnu: superlu-dist: Update to 5.3.0 Ludovic Courtès
@ 2018-05-12 16:02 ` Ludovic Courtès
0 siblings, 0 replies; 6+ messages in thread
From: Ludovic Courtès @ 2018-05-12 16:02 UTC (permalink / raw)
To: 31434; +Cc: bavier, Ludovic Courtès
From: Ludovic Courtès <ludovic.courtes@inria.fr>
* gnu/packages/mpi.scm (openmpi): Update to 3.0.1.
[arguments]: In 'remove-absolute' phase, adjust romio file name.
* gnu/packages/maths.scm (scalapack)[arguments]: Add
'set-test-environment' phase.
(slepc-openmpi)[arguments]: Likewise.
(mumps-openmpi)[arguments]: Likewise.
(superlu-dist)[arguments]: In 'check' phase, set
'OMPI_MCA_plm_rsh_agent'.
(scotch)[arguments]: In 'build-esmumps', likewise.
(p4est)[arguments]: Add 'set-test-environment' phase.
(hypre-openmpi)[arguments]: Likewise.
---
gnu/packages/maths.scm | 74 +++++++++++++++++++++++++++++++++++++-----
gnu/packages/mpi.scm | 8 ++---
2 files changed, 70 insertions(+), 12 deletions(-)
diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm
index d2edecc54..bc2e1be37 100644
--- a/gnu/packages/maths.scm
+++ b/gnu/packages/maths.scm
@@ -554,7 +554,16 @@ problems in numerical linear algebra.")
("fortran" ,gfortran)
("lapack" ,lapack))) ;for testing only
(arguments
- `(#:configure-flags `("-DBUILD_SHARED_LIBS:BOOL=YES")))
+ `(#:configure-flags `("-DBUILD_SHARED_LIBS:BOOL=YES")
+ #:phases (modify-phases %standard-phases
+ (add-before 'check 'set-test-environment
+ (lambda _
+ ;; By default, running the test suite would fail because
+ ;; 'ssh' could not be found in $PATH. Define this
+ ;; variable to placate Open MPI without adding a
+ ;; dependency on OpenSSH (the agent isn't used anyway.)
+ (setenv "OMPI_MCA_plm_rsh_agent" (which "cat"))
+ #t)))))
(home-page "http://www.netlib.org/scalapack/")
(synopsis "Library for scalable numerical linear algebra")
(description
@@ -1786,6 +1795,18 @@ arising after the discretization of partial differential equations.")
(define-public slepc-openmpi
(package (inherit slepc)
(name "slepc-openmpi")
+ (arguments
+ (substitute-keyword-arguments (package-arguments slepc)
+ ((#:phases phases '%standard-phases)
+ `(modify-phases ,phases
+ (add-before 'check 'set-test-environment
+ (lambda _
+ ;; By default, running the test suite would fail because 'ssh'
+ ;; could not be found in $PATH. Define this variable to
+ ;; placate Open MPI without adding a dependency on OpenSSH (the
+ ;; agent isn't used anyway.)
+ (setenv "OMPI_MCA_plm_rsh_agent" (which "cat"))
+ #t))))))
(inputs
`(("mpi" ,openmpi)
("arpack" ,arpack-ng-openmpi)
@@ -1955,11 +1976,18 @@ sparse system of linear equations A x = b using Guassian elimination.")
(substitute-keyword-arguments (package-arguments mumps)
((#:phases phases)
`(modify-phases ,phases
- (replace
- 'check
- (lambda _
- ((assoc-ref ,phases 'check)
- #:exec-prefix '("mpirun" "-n" "2"))))))))
+ (add-before 'check 'set-test-environment
+ (lambda _
+ ;; By default, running the test suite would fail because 'ssh'
+ ;; could not be found in $PATH. Define this variable to
+ ;; placate Open MPI without adding a dependency on OpenSSH (the
+ ;; agent isn't used anyway.)
+ (setenv "OMPI_MCA_plm_rsh_agent" (which "cat"))
+ #t))
+ (replace 'check
+ (lambda _
+ ((assoc-ref ,phases 'check)
+ #:exec-prefix '("mpirun" "-n" "2"))))))))
(synopsis "Multifrontal sparse direct solver (with MPI)")))
(define-public mumps-metis-openmpi
@@ -2201,6 +2229,11 @@ CDEFS = -DAdd_"
#t))
(replace 'check
(lambda _
+ ;; By default, running the test suite would fail because 'ssh'
+ ;; could not be found in $PATH. Define this variable to placate
+ ;; Open MPI without adding a dependency on OpenSSH (the agent
+ ;; isn't used anyway.)
+ (setenv "OMPI_MCA_plm_rsh_agent" (which "cat"))
(with-directory-excursion "EXAMPLE"
(and
(zero? (system* "mpirun" "-n" "2"
@@ -2295,6 +2328,12 @@ YACC = bison -pscotchyy -y -b y
(add-after
'build 'build-esmumps
(lambda _
+ ;; By default, running the test suite would fail because 'ssh'
+ ;; could not be found in $PATH. Define this variable to placate
+ ;; Open MPI without adding a dependency on OpenSSH (the agent
+ ;; isn't used anyway.)
+ (setenv "OMPI_MCA_plm_rsh_agent" (which "cat"))
+
(zero? (system* "make"
(format #f "-j~a" (parallel-job-count))
"esmumps"))))
@@ -2474,7 +2513,16 @@ schemes.")
" -lopenblas")
,(string-append "LAPACK_LIBS=-L"
(assoc-ref %build-inputs "lapack")
- " -llapack"))))
+ " -llapack"))
+ #:phases (modify-phases %standard-phases
+ (add-before 'check 'set-test-environment
+ (lambda _
+ ;; By default, running the test suite would fail because
+ ;; 'ssh' could not be found in $PATH. Define this
+ ;; variable to placate Open MPI without adding a
+ ;; dependency on OpenSSH (the agent isn't used anyway.)
+ (setenv "OMPI_MCA_plm_rsh_agent" (which "cat"))
+ #t)))))
(home-page "http://www.p4est.org")
(synopsis "Adaptive mesh refinement on forests of octrees")
(description
@@ -3531,7 +3579,17 @@ problems.")
(substitute-keyword-arguments (package-arguments hypre)
((#:configure-flags flags)
``("--with-MPI"
- ,@(delete "--without-MPI" ,flags)))))
+ ,@(delete "--without-MPI" ,flags)))
+ ((#:phases phases)
+ `(modify-phases ,phases
+ (add-before 'check 'set-test-environment
+ (lambda _
+ ;; By default, running the test suite would fail because 'ssh'
+ ;; could not be found in $PATH. Define this variable to
+ ;; placate Open MPI without adding a dependency on OpenSSH (the
+ ;; agent isn't used anyway.)
+ (setenv "OMPI_MCA_plm_rsh_agent" (which "cat"))
+ #t))))))
(synopsis "Parallel solvers and preconditioners for linear equations")
(description
"HYPRE is a software library of high performance preconditioners and
diff --git a/gnu/packages/mpi.scm b/gnu/packages/mpi.scm
index 5dfb26ae7..5496ea9c9 100644
--- a/gnu/packages/mpi.scm
+++ b/gnu/packages/mpi.scm
@@ -153,7 +153,7 @@ bind processes, and much more.")
(define-public openmpi
(package
(name "openmpi")
- (version "1.10.7")
+ (version "3.0.1")
(source
(origin
(method url-fetch)
@@ -162,7 +162,7 @@ bind processes, and much more.")
"/downloads/openmpi-" version ".tar.bz2"))
(sha256
(base32
- "142s1vny9gllkq336yafxayjgcirj2jv0ddabj879jgya7hyr2d0"))))
+ "0pbqrm5faf57nasy1s81wqivl7zvxmv8lzjh8hvb0f3qxv8m0d36"))))
(build-system gnu-build-system)
(inputs
`(("hwloc" ,hwloc "lib")
@@ -205,8 +205,8 @@ bind processes, and much more.")
(("_ABSOLUTE") ""))
;; Avoid valgrind (which pulls in gdb etc.).
(substitute*
- '("./ompi/mca/io/romio/src/io_romio_component.c")
- (("MCA_io_romio_COMPLETE_CONFIGURE_FLAGS")
+ '("./ompi/mca/io/romio314/src/io_romio314_component.c")
+ (("MCA_io_romio314_COMPLETE_CONFIGURE_FLAGS")
"\"[elided to reduce closure]\""))
#t))
(add-before 'build 'scrub-timestamps ;reproducibility
--
2.17.0
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [bug#31434] [PATCH 0/2] OpenMPI 3.0
2018-05-12 16:01 [bug#31434] [PATCH 0/2] OpenMPI 3.0 Ludovic Courtès
2018-05-12 16:02 ` [bug#31434] [PATCH 1/2] gnu: superlu-dist: Update to 5.3.0 Ludovic Courtès
@ 2018-05-23 8:09 ` Ludovic Courtès
2018-05-25 11:44 ` bug#31434: " Ludovic Courtès
2018-05-23 12:00 ` [bug#31434] " Ludovic Courtès
2 siblings, 1 reply; 6+ messages in thread
From: Ludovic Courtès @ 2018-05-23 8:09 UTC (permalink / raw)
To: 31434, bavier
Hello Eric,
Ludovic Courtès <ludo@gnu.org> skribis:
> The attached patch updates OpenMPI to 3.0.1. The ‘superlu-dist’ upgrade
> was necessary to get there.
Did you have a chance to look into it? You mentioned on IRC that there
might be a better way than setting OMPI_MCA_plm_rsh_agent.
Thanks in advance!
Ludo’.
^ permalink raw reply [flat|nested] 6+ messages in thread
* [bug#31434] [PATCH 0/2] OpenMPI 3.0
2018-05-12 16:01 [bug#31434] [PATCH 0/2] OpenMPI 3.0 Ludovic Courtès
2018-05-12 16:02 ` [bug#31434] [PATCH 1/2] gnu: superlu-dist: Update to 5.3.0 Ludovic Courtès
2018-05-23 8:09 ` [bug#31434] [PATCH 0/2] OpenMPI 3.0 Ludovic Courtès
@ 2018-05-23 12:00 ` Ludovic Courtès
2 siblings, 0 replies; 6+ messages in thread
From: Ludovic Courtès @ 2018-05-23 12:00 UTC (permalink / raw)
To: 31434; +Cc: bavier
A somewhat related issue that a colleague pointed out is whether we
should build with ‘--enable-mpirun-prefix-by-default’, which README
documents like this:
--8<---------------cut here---------------start------------->8---
--enable-mpirun-prefix-by-default
This option forces the "mpirun" command to always behave as if
"--prefix $prefix" was present on the command line (where $prefix is
the value given to the --prefix option to configure). This prevents
most rsh/ssh-based users from needing to modify their shell startup
files to set the PATH and/or LD_LIBRARY_PATH for Open MPI on remote
nodes. Note, however, that such users may still desire to set PATH
-- perhaps even in their shell startup files -- so that executables
such as mpicc and mpirun can be found without needing to type long
path names. --enable-orterun-prefix-by-default is a synonym for
this option.
--8<---------------cut here---------------end--------------->8---
It looks like something we may want. Thoughts?
Ludo’.
^ permalink raw reply [flat|nested] 6+ messages in thread
* bug#31434: [PATCH 0/2] OpenMPI 3.0
2018-05-23 8:09 ` [bug#31434] [PATCH 0/2] OpenMPI 3.0 Ludovic Courtès
@ 2018-05-25 11:44 ` Ludovic Courtès
0 siblings, 0 replies; 6+ messages in thread
From: Ludovic Courtès @ 2018-05-25 11:44 UTC (permalink / raw)
To: 31434-done; +Cc: bavier
Hello,
ludovic.courtes@inria.fr (Ludovic Courtès) skribis:
> Ludovic Courtès <ludo@gnu.org> skribis:
>
>> The attached patch updates OpenMPI to 3.0.1. The ‘superlu-dist’ upgrade
>> was necessary to get there.
>
> Did you have a chance to look into it? You mentioned on IRC that there
> might be a better way than setting OMPI_MCA_plm_rsh_agent.
I went ahead and apply the patches as they were so we can have a recent
Open MPI. We can always revisit the OMPI_MCA_plm_rsh_agent issue later.
Thanks,
Ludo’.
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2018-05-25 11:45 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-05-12 16:01 [bug#31434] [PATCH 0/2] OpenMPI 3.0 Ludovic Courtès
2018-05-12 16:02 ` [bug#31434] [PATCH 1/2] gnu: superlu-dist: Update to 5.3.0 Ludovic Courtès
2018-05-12 16:02 ` [bug#31434] [PATCH 2/2] gnu: openmpi: Update to 3.0.1 Ludovic Courtès
2018-05-23 8:09 ` [bug#31434] [PATCH 0/2] OpenMPI 3.0 Ludovic Courtès
2018-05-25 11:44 ` bug#31434: " Ludovic Courtès
2018-05-23 12:00 ` [bug#31434] " Ludovic Courtès
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/guix.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).