summaryrefslogtreecommitdiff
path: root/var
diff options
context:
space:
mode:
authorRobert Cohn <robert.s.cohn@intel.com>2023-05-10 10:47:57 -0400
committerGitHub <noreply@github.com>2023-05-10 10:47:57 -0400
commit8eb18295548963b66f7b460d4fecea3396a642a9 (patch)
treea9da8e18331c94daa51659f141089dd6a051e377 /var
parente70755f69212a49177d4c4ac0e365c989b90c7df (diff)
downloadspack-8eb18295548963b66f7b460d4fecea3396a642a9.tar.gz
spack-8eb18295548963b66f7b460d4fecea3396a642a9.tar.bz2
spack-8eb18295548963b66f7b460d4fecea3396a642a9.tar.xz
spack-8eb18295548963b66f7b460d4fecea3396a642a9.zip
intel-oneapi-mkl: add threading support (#37586)
Diffstat (limited to 'var')
-rw-r--r--var/spack/repos/builtin/packages/intel-oneapi-mkl/package.py18
1 files changed, 17 insertions, 1 deletions
diff --git a/var/spack/repos/builtin/packages/intel-oneapi-mkl/package.py b/var/spack/repos/builtin/packages/intel-oneapi-mkl/package.py
index f01631d3c6..c8cd33ab8a 100644
--- a/var/spack/repos/builtin/packages/intel-oneapi-mkl/package.py
+++ b/var/spack/repos/builtin/packages/intel-oneapi-mkl/package.py
@@ -97,6 +97,13 @@ class IntelOneapiMkl(IntelOneApiLibraryPackage):
variant(
"cluster", default=False, description="Build with cluster support: scalapack, blacs, etc"
)
+ variant(
+ "threads",
+ default="none",
+ description="Multithreading support",
+ values=("openmp", "tbb", "none"),
+ multi=False,
+ )
depends_on("intel-oneapi-tbb")
# cluster libraries need mpi
@@ -155,7 +162,16 @@ class IntelOneapiMkl(IntelOneApiLibraryPackage):
if "+cluster" in self.spec:
libs.extend([self._xlp64_lib("libmkl_scalapack"), "libmkl_cdft_core"])
- libs.extend([self._xlp64_lib("libmkl_intel"), "libmkl_sequential", "libmkl_core"])
+ libs.append(self._xlp64_lib("libmkl_intel"))
+
+ if "threads=tbb" in self.spec:
+ libs.append("libmkl_tbb_thread")
+ elif "threads=openmp" in self.spec:
+ libs.append("libmkl_intel_thread")
+ else:
+ libs.append("libmkl_sequential")
+
+ libs.append("libmkl_core")
if "+cluster" in self.spec:
libs.append(self._xlp64_lib("libmkl_blacs_intelmpi"))