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')
|
depends_on('yaksa+rocm', when='+rocm ^yaksa')
|
||||||
conflicts('datatype-engine=yaksa', when='device=ch3')
|
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
|
# Todo: cuda can be a conditional variant, but it does not seem to work when
|
||||||
# overriding the variant from CudaPackage.
|
# overriding the variant from CudaPackage.
|
||||||
conflicts('+cuda', when='@:3.3')
|
conflicts('+cuda', when='@:3.3')
|
||||||
@ -345,6 +351,9 @@ def is_disabled(text):
|
|||||||
if match:
|
if match:
|
||||||
variants.append('netmod=' + match.group(1))
|
variants.append('netmod=' + match.group(1))
|
||||||
|
|
||||||
|
if re.search(r'--with-hcoll', output):
|
||||||
|
variants += '+hcoll'
|
||||||
|
|
||||||
match = re.search(r'MPICH CC:\s+(\S+)', output)
|
match = re.search(r'MPICH CC:\s+(\S+)', output)
|
||||||
compiler_spec = get_spack_compiler_spec(
|
compiler_spec = get_spack_compiler_spec(
|
||||||
os.path.dirname(match.group(1)))
|
os.path.dirname(match.group(1)))
|
||||||
@ -559,6 +568,9 @@ def configure_args(self):
|
|||||||
elif 'datatype-engine=auto' in spec:
|
elif 'datatype-engine=auto' in spec:
|
||||||
config_args.append('--with-datatye-engine=auto')
|
config_args.append('--with-datatye-engine=auto')
|
||||||
|
|
||||||
|
if '+hcoll' in spec:
|
||||||
|
config_args.append('--with-hcoll=' + spec['hcoll'].prefix)
|
||||||
|
|
||||||
return config_args
|
return config_args
|
||||||
|
|
||||||
@run_after('install')
|
@run_after('install')
|
||||||
|
Loading…
Reference in New Issue
Block a user