mpich: add support for Mellanox HCOLL (#30662)
Co-authored-by: Federico Ficarelli <federico.ficarelli@pm.me>
This commit is contained in:
parent
a681fd7b42
commit
dc7bdf5f24
@ -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')
|
||||
|
Loading…
Reference in New Issue
Block a user