diff options
Diffstat (limited to 'var')
-rw-r--r-- | var/spack/repos/builtin/packages/mpich/package.py | 24 |
1 files changed, 23 insertions, 1 deletions
diff --git a/var/spack/repos/builtin/packages/mpich/package.py b/var/spack/repos/builtin/packages/mpich/package.py index ec8cdd8f19..d416016ad5 100644 --- a/var/spack/repos/builtin/packages/mpich/package.py +++ b/var/spack/repos/builtin/packages/mpich/package.py @@ -101,6 +101,19 @@ with '-Wl,-commons,use_dylibs' and without 'communications. Set MPIR_CVAR_CH4_NUM_VCIS=<N> to ' 'enable multiple vcis at runtime.') + variant( + 'datatype-engine', + default='auto', + description='controls the datatype engine to use', + values=('dataloop', 'yaksa', 'auto'), + when='@3.4:', + multi=False + ) + depends_on('yaksa', when='@4.0: device=ch4 datatype-engine=auto') + depends_on('yaksa', when='@4.0: device=ch4 datatype-engine=yaksa') + depends_on('yaksa+cuda', when='+cuda ^yaksa') + conflicts('datatype-engine=yaksa', when='device=ch3') + # 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') @@ -454,7 +467,9 @@ with '-Wl,-commons,use_dylibs' and without '--{0}-romio'.format('enable' if '+romio' in spec else 'disable'), '--{0}-ibverbs'.format('with' if '+verbs' in spec else 'without'), '--enable-wrapper-rpath={0}'.format('no' if '~wrapperrpath' in - spec else 'yes') + spec else 'yes'), + '--with-yaksa={0}'.format( + spec['yaksa'].prefix if '^yaksa' in spec else 'embedded'), ] if '~fortran' in spec: @@ -528,6 +543,13 @@ with '-Wl,-commons,use_dylibs' and without config_args.append('--enable-thread-cs=per-vci') config_args.append('--with-ch4-max-vcis=default') + if 'datatype-engine=yaksa' in spec: + config_args.append('--with-datatype-engine=yaksa') + elif 'datatype-engine=dataloop' in spec: + config_args.append('--with-datatype-engine=dataloop') + elif 'datatype-engine=auto' in spec: + config_args.append('--with-datatye-engine=auto') + return config_args @run_after('install') |