diff options
author | Tom Payerle <payerle@umd.edu> | 2021-12-17 11:32:59 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-12-17 09:32:59 -0700 |
commit | c3a929fdfc7ae12a0b99eca57bbcf9cbbd0b8db0 (patch) | |
tree | 00c24073ffa60b3c5205ccb9c3eeeb1e60736284 | |
parent | 6313d84d3857519f86463656e25b781aa8153cdf (diff) | |
download | spack-c3a929fdfc7ae12a0b99eca57bbcf9cbbd0b8db0.tar.gz spack-c3a929fdfc7ae12a0b99eca57bbcf9cbbd0b8db0.tar.bz2 spack-c3a929fdfc7ae12a0b99eca57bbcf9cbbd0b8db0.tar.xz spack-c3a929fdfc7ae12a0b99eca57bbcf9cbbd0b8db0.zip |
suite-sparse: fix issues with tbb (#28054)
* suite-sparse: Fix check for +/- tbb variant
Changed
'tbb' in spec
to
'+tbb' in spec
The former would configure suite-sparse to use tbb if any dependency
package (e.g. intel-oneapi-mkl) depends on tbb, even if
suite-sparse~tbb was specified.
* suite-sparse: conflict when trying to use 2021.x versions of tbb
See https://github.com/DrTimothyAldenDavis/SuiteSparse/issues/72
suite-sparse depends on task_schedule_init to control the number
of threads when e.g. interfacing with MATLAB. However, Intel
dropped task_schedule_init in the 2021.x releases of TBB (it has
been deprecated since TBB 4.3.5).
We just raise a spack conflict when using tbb @2021.x and +tbb
Because tbb is a virtual package and is not versioned, I have
instead checked for either intel-oneapi-tbb@2021: or
intel-tbb@2021:, not the most elegant but should do the job
* suite-sparse: fix style issues
-rw-r--r-- | var/spack/repos/builtin/packages/suite-sparse/package.py | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/var/spack/repos/builtin/packages/suite-sparse/package.py b/var/spack/repos/builtin/packages/suite-sparse/package.py index b03f901ad3..7dbd8f3d0d 100644 --- a/var/spack/repos/builtin/packages/suite-sparse/package.py +++ b/var/spack/repos/builtin/packages/suite-sparse/package.py @@ -70,6 +70,18 @@ class SuiteSparse(Package): conflicts('%gcc@:4.8', when='@5.2.0:', msg='gcc version must be at least 4.9 for suite-sparse@5.2.0:') + # The @2021.x versions of tbb dropped the task_scheduler_init.h header and + # related stuff (which have long been deprecated). This appears to be + # rather problematic for suite-sparse (see e.g. + # https://github.com/DrTimothyAldenDavis/SuiteSparse/blob/master/SPQR/Source/spqr_parallel.cpp) + # Have Spack complain if +tbb and trying to use a 2021.x version of tbb + conflicts('+tbb', when='^intel-oneapi-tbb@2021:', + msg='suite-sparse needs task_scheduler_init.h dropped in ' + 'recent tbb libs') + conflicts('+tbb', when='^intel-tbb@2021:', + msg='suite-sparse needs task_scheduler_init.h dropped in ' + 'recent tbb libs') + def symbol_suffix_blas(self, spec, args): """When using BLAS with a special symbol suffix we use defines to replace blas symbols, e.g. dgemm_ becomes dgemm_64_ when @@ -165,7 +177,7 @@ class SuiteSparse(Package): make_args += ['CFLAGS+=-DBLAS_NO_UNDERSCORE'] # Intel TBB in SuiteSparseQR - if 'tbb' in spec: + if '+tbb' in spec: make_args += [ 'SPQR_CONFIG=-DHAVE_TBB', 'TBB=%s' % spec['tbb'].libs.ld_flags, |