This fixes OpenMPI builds on systems not supported by the PSM packages.
* gnu/packages/mpi.scm (openmpi)[arguments]: Remove '--enable-psm' and
'--enable-psm2' from #:configure-flags.
* gnu/packages/linux.scm (psm)[arguments]: Add 'patch-sysmacros phase to fix
"undefined reference to `minor'" errors while linking against
libinfinipath.so.
* gnu/packages/mpi.scm (openmpi): Upgrade to 4.0.0.
[inputs]: Add libevent.
[arguments]: Simplify configure-flags. Use system libevent. Adjust romio
version strings.
(%openmpi-setup): Use OMPI_MCA_rmaps_base_mapping_policy for oversubscription.
This allows users to run Open MPI programs with 'srun'.
* gnu/packages/mpi.scm (openmpi)[inputs]: Add SLURM.
[arguments]: Add "--with-pmi" to #:configure-flags.
Fixes a regression introduced in
9129804230 whereby PSM would never be
added as an input.
* gnu/packages/mpi.scm (openmpi)[inputs]: Re-add PSM on supported
systems.
That test would fail on some machines, for instance build machines
behind berlin.guixsd.org.
* gnu/packages/mpi.scm (hwloc)[arguments]: Add 'skip-linux-libnuma-test'
phase.
(hwloc-2.0)[arguments]: Replace it.
* gnu/packages/mpi.scm (hwloc-2.0): New variable.
* gnu/packages/patches/hwloc-tests-without-sysfs.patch: New file.
* gnu/local.mk (dist_patch_DATA): Add it.
Syntax help supplied by bavier@member.fsf.org
* gnu/packages/linux.scm (libfabric)[inputs]: Only use psm as an input
on systems where psm is supported.
* gnu/packages/mpi.scm (openmpi)[inputs]: Same.
This is necessary for one mechanism for attaching parallel debuggers
and is also relevant for the runtime backtrace facility.
* gnu/packages/mpi.scm (openmpi)[outputs]: New field.
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
VT is obsoleted by scorep (not currently packaged) and disabling it reduces
the closure considerably.
* mpi.scm (openmpi)[arguments]: Configure without vampirtrace.
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
devel-headers are only for building MCA components, produce a large
closure and aren't normally packaged. Only the affinity component of
mpi-ext is useful.
* gnu/packages/mpi.scm (openmpi)[arguments]: Don't configure
--with-devel-headers and --enable-mpi-ext=all.
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
This reduces the closure greatly, but note that the Fortran .mod files are
gfortran version-specific, so there should probably be development packages
for each incompatible version. (The runtime is supposed to be more-or-less
version-independent unless the libgfortran soname changes.) There may still
be a case for a separate runtime output.
* gnu/packages/mpi.scm (openmpi)[arguments]: Add "remove-absolute" phase.
Co-authored-by: Ludovic Courtès <ludo@gnu.org>
* gnu/packages/mpi.scm (hwloc)[outputs]: New field.
[arguments]: Add 'avoid-circular-references' phase.
(openmpi)[inputs]: Use the "lib" output of HWLOC.
* gnu/packages/parallel.scm (slurm)[inputs]: Likewise.
The procedure version-prefix truncates a version string to a certain
number of components. version-major+minor is a special case of this,
which extracts the "major.minor" part of the string. Previously this
was handled by an expression common to several packages.
* guix/utils.scm (version-prefix, version-major+minor): New procedures
* gnu/packages/backup.scm (duplicity): Use version-major+minor.
* gnu/packages/cmake.scm (cmake): Likewise.
* gnu/packages/gnome.scm (libbonobo, libbonoboui): Likewise.
* gnu/packages/gnutls.scm (gnutls): Likewise.
* gnu/packages/mail.scm (gmime): Likewise.
* gnu/packages/mpd.scm (mpd): Likewise.
* gnu/packages/mpi.scm (openmpi): Likewise.
Signed-off-by: Ludovic Courtès <ludo@gnu.org>