summaryrefslogtreecommitdiff
path: root/var
diff options
context:
space:
mode:
authorKen Raffenetti <raffenet@users.noreply.github.com>2022-05-15 07:14:47 -0500
committerGitHub <noreply@github.com>2022-05-15 14:14:47 +0200
commitdc7bdf5f2410078c17d30e35aaba0cffb03ea6cb (patch)
treed6970761f6f0af535b690179f5996d6499d070e8 /var
parenta681fd7b42746480de76a348065e8ccce5cea6c9 (diff)
downloadspack-dc7bdf5f2410078c17d30e35aaba0cffb03ea6cb.tar.gz
spack-dc7bdf5f2410078c17d30e35aaba0cffb03ea6cb.tar.bz2
spack-dc7bdf5f2410078c17d30e35aaba0cffb03ea6cb.tar.xz
spack-dc7bdf5f2410078c17d30e35aaba0cffb03ea6cb.zip
mpich: add support for Mellanox HCOLL (#30662)
Co-authored-by: Federico Ficarelli <federico.ficarelli@pm.me>
Diffstat (limited to 'var')
-rw-r--r--var/spack/repos/builtin/packages/mpich/package.py12
1 files changed, 12 insertions, 0 deletions
diff --git a/var/spack/repos/builtin/packages/mpich/package.py b/var/spack/repos/builtin/packages/mpich/package.py
index b758f5b720..64fd90f0d6 100644
--- a/var/spack/repos/builtin/packages/mpich/package.py
+++ b/var/spack/repos/builtin/packages/mpich/package.py
@@ -115,6 +115,12 @@ with '-Wl,-commons,use_dylibs' and without
depends_on('yaksa+rocm', when='+rocm ^yaksa')
conflicts('datatype-engine=yaksa', when='device=ch3')
+ variant('hcoll', default=False,
+ description='Enable support for Mellanox HCOLL accelerated '
+ 'collective operations library',
+ when='@3.3: device=ch4 netmod=ucx')
+ depends_on('hcoll', when='+hcoll')
+
# Todo: cuda can be a conditional variant, but it does not seem to work when
# overriding the variant from CudaPackage.
conflicts('+cuda', when='@:3.3')
@@ -345,6 +351,9 @@ with '-Wl,-commons,use_dylibs' and without
if match:
variants.append('netmod=' + match.group(1))
+ if re.search(r'--with-hcoll', output):
+ variants += '+hcoll'
+
match = re.search(r'MPICH CC:\s+(\S+)', output)
compiler_spec = get_spack_compiler_spec(
os.path.dirname(match.group(1)))
@@ -559,6 +568,9 @@ with '-Wl,-commons,use_dylibs' and without
elif 'datatype-engine=auto' in spec:
config_args.append('--with-datatye-engine=auto')
+ if '+hcoll' in spec:
+ config_args.append('--with-hcoll=' + spec['hcoll'].prefix)
+
return config_args
@run_after('install')