Merge branch 'mpich_merlin7' into 'master'

Mpich merlin7

See merge request Pmodules/buildblocks!457
This commit is contained in:
2024-10-16 17:07:57 +02:00
3 changed files with 122 additions and 21 deletions

View File

@@ -1,28 +1,70 @@
#!/usr/bin/env modbuild
pbuild::set_download_url "http://www.mpich.org/static/downloads/$V/$P-${V_PKG}.tar.gz"
pbuild::add_to_group 'Compiler'
pbuild::install_docfiles 'COPYRIGHT' 'README'
module use System
pbuild::pre_configure() {
unset F90
pbuild::add_configure_args "--enable-cxx"
pbuild::add_configure_args "--enable-fortran"
if pbuild::use_flag merlin; then
MXM_DIR='/opt/mellanox/mxm/'
pbuild::add_configure_args "--with-device=ch3:nemesis:mxm"
pbuild::add_configure_args "--with-mxm=${MXM_DIR}"
pbuild::add_configure_args "--without-x"
#pbuild::add_configure_args "--with-slurm-include=/usr/include/slurm"
#pbuild::add_configure_args "--with-slurm-lib=/usr/lib64"
#pbuild::add_configure_args "--with-pmi=slurm"
#pbuild::add_configure_args "--with-pm=no"
pbuild::add_configure_args "--enable-gl=no"
unset F90
pbuild::add_configure_args "--enable-shared"
pbuild::add_configure_args "--enable-static"
if [[ -v CUDA_VERSION ]]; then
std::info "Enabling CUDA ${CUDA_VERSION}."
pbuild::add_configure_args "--with-cuda=${CUDA_HOME}"
fi
if [[ -v HWLOC_VERSION ]]; then
unset HWLOC_VERSION
std::info "Enabling external hwloc ${HWLOC_PREFIX}."
pbuild::add_configure_args "--with-hwloc=${HWLOC_PREFIX}"
else
pbuild::add_configure_args "--with-hwloc=embedded"
fi
if [[ -v PMIX_VERSION ]]; then
std::info "Enabling PMIX ${PMIX_VERSION}."
unset PMIX_VERSION
pbuild::add_configure_args "--with-pmix=${PMIX_PREFIX}"
pbuild::add_configure_args "--with-pmi=pmix"
fi
if pbuild::use_flag merlin7 && [[ ! -v LIBFABRIC_VERSION ]]; then
if pkg-config --exists libfabric; then
std::info "Get LIBFABRIC_VERSION via pkg-config"
LIBFABRIC_PREFIX=$(pkg-config --variable=prefix libfabric)
LIBFABRIC_VERSION="$(LIBFABRIC_PREFIX##*/)"
fi
fi
if [[ "${COMPILER}" == 'gcc' ]] && (( ${COMPILER_VERSION%.*.*} == 10 )); then
pbuild::add_configure_args "FFLAGS=-fallow-argument-mismatch"
if [[ -v LIBFABRIC_VERSION ]]; then
std::info "Enabling libfabric ${LIBFABRIC_VERSION}."
if (( V_MAJOR < 4 )); then
pbuild::add_configure_args "--with-ofi=${LIBFABRIC_PREFIX}"
fi
pbuild::add_configure_args "--with-libfabric=${LIBFABRIC_PREFIX}"
fi
if [[ -v UCX_VERSION ]]; then
std::info "Enabling UCX ${UCX_VERSION}."
pbuild::add_configure_args "--with-ucx=${UCX_PREFIX}"
fi
if [[ -v INTEL_VERSION ]]; then
pbuild::add_configure_args "CC=icc"
pbuild::add_configure_args "CXX=icpc"
pbuild::add_configure_args "FC=ifort"
pbuild::add_configure_args "F90=ifort"
pbuild::add_configure_args "F77=ifort"
pbuild::add_configure_args "LDFLAGS=-Wc,-static-intel,-O0"
fi
if pbuild::use_flag slurm || \
pbuild::use_flag merlin6 || \
pbuild::use_flag merlin7; then
std::info "Enabling SLURM."
pbuild::add_configure_args "--with-slurm"
fi
}
# Local Variables:
# mode: sh
# sh-basic-offset: 8
# tab-width: 8
# End:

View File

@@ -0,0 +1,46 @@
---
# yamllint disable rule:line-length
format: 1
mpich:
defaults:
group: Compiler
overlay: base
relstage: stable
configure_args:
- --enable-cxx
- --enable-fortran
docfiles: [COPYRIGHT, README]
urls:
- url: http://www.mpich.org/static/downloads/$V/$P-${V_PKG}.tar.gz
shasums:
mpich-3.3.2.tar.gz: 4bfaf8837a54771d3e4922c84071ef80ffebddbb6971a006038d91ee7ef959b9
mpich-4.2.3.tar.gz: 7a019180c51d1738ad9c5d8d452314de65e828ee240bcb2d1f80de9a65be88a8
versions:
4.2.3:
variants:
- systems: [.*.merlin7.psi.ch]
relstage: unstable
overlay: Alps
use_overlays: [PSI]
use_flags: [merlin7, slurm]
group_deps:
compiler: {gcc: [12.3.0]}
build_requires: [hwloc/2.11.1, libfabric/1.15.2.0, patchelf/0.14.5]
runtime_deps: [cuda/12.2.0]
configure_args+:
- --with-pm=hydra,gforker
3.3.2:
variants:
- systems: [.*.merlin7.psi.ch]
relstage: unstable
overlay: Alps
use_overlays: [PSI]
use_flags: [merlin7, slurm]
group_deps:
compiler: {gcc: [8.4.0]}
build_requires: [libfabric/1.15.2.0, patchelf/0.14.5]
patch_files:
- patch/mpich-v3.3.2.patch
configure_args+:
- --with-device=ch3:nemesis:ofi

View File

@@ -0,0 +1,13 @@
diff --git a/src/pm/hydra/tools/bootstrap/external/slurm_query_node_list.c b/src/pm/hydra/tools/bootstrap/external/slurm_query_node_list.c
index 9b35471f3..7b5dd782f 100644
--- a/src/pm/hydra/tools/bootstrap/external/slurm_query_node_list.c
+++ b/src/pm/hydra/tools/bootstrap/external/slurm_query_node_list.c
@@ -26,7 +26,7 @@ static struct HYD_node *global_node_list = NULL;
#if defined(HAVE_LIBSLURM)
static HYD_status list_to_nodes(char *str)
{
- hostlist_t hostlist;
+ hostlist_t *hostlist;
char *host;
int k = 0;
HYD_status status = HYD_SUCCESS;