mpich: add support for Mellanox HCOLL (#30662)

Co-authored-by: Federico Ficarelli <federico.ficarelli@pm.me>
This commit is contained in:
Ken Raffenetti 2022-05-15 07:14:47 -05:00 committed by GitHub
parent a681fd7b42
commit dc7bdf5f24
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -115,6 +115,12 @@ class Mpich(AutotoolsPackage, CudaPackage, ROCmPackage):
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 @@ def is_disabled(text):
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 @@ def configure_args(self):
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')