This is a followup to 8ec7ca22d3, which
led to a stack overflow (cyclic graph) when attempting to build HWLOC-2.
* gnu/packages/mpi.scm (hwloc-2): Refer to HWLOC-1 instead of HWLOC.
This allows us to get better performance by default on machines with
OmniPath hardware.
* gnu/packages/patches/openmpi-psm2-priority.patch: New file.
* gnu/packages/mpi.scm (openmpi)[source]: Use it.
* gnu/local.mk (dist_patch_DATA): Add it.
These variables are no longer set in the build environment by default. GCC
still respects these search paths and treats them as "system headers" so we
can continue to use them, just not expect them to be available.
* gnu/packages/mpi.scm (openmpi)[arguments]: Do not attempt to read from
C_INCLUDE_PATH, nor CPLUS_INCLUDE_PATH.
* gnu/packages/games.scm (kiki)[arguments]: Likewise.
* gnu/packages/networking.scm (hcxtools)[arguments]: Likewise.
* gnu/packages/synergy.scm (synergy)[arguments]: Likewise.
* gnu/packages/bioinformatics.scm (gemma, sailfish)[arguments]: Likewise.
* gnu/packages/maths.scm (dune-alugrid)[arguments]: Likewise.
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>