summaryrefslogtreecommitdiff
path: root/var
diff options
context:
space:
mode:
authorWilliam R Tobin <4522899+wrtobin@users.noreply.github.com>2023-08-10 07:33:29 -0700
committerGitHub <noreply@github.com>2023-08-10 10:33:29 -0400
commitb8bfaf65bf0676bd7c2c2f618105d0ed84a64655 (patch)
tree0809804825cbd70ec435e51f280bcb44db72adf5 /var
parent7968cb7fa23f0365c00401baeed90a0dfdb4a35e (diff)
downloadspack-b8bfaf65bf0676bd7c2c2f618105d0ed84a64655.tar.gz
spack-b8bfaf65bf0676bd7c2c2f618105d0ed84a64655.tar.bz2
spack-b8bfaf65bf0676bd7c2c2f618105d0ed84a64655.tar.xz
spack-b8bfaf65bf0676bd7c2c2f618105d0ed84a64655.zip
intel-oneapi-mkl: linking with the +cluster variant is broken for external mkl (#39343)
* Update package.py Adding `mpi` variant to deal with external oneapi-mkl usage per #38238. * style conformance * accept both mpi specification mechanisms * style conformance * Update package.py * Update var/spack/repos/builtin/packages/intel-oneapi-mkl/package.py Co-authored-by: Robert Cohn <rscohn2@gmail.com> * rename mpi variant mpi_family * style conformance * update help message for mpi_family --------- Co-authored-by: Robert Cohn <rscohn2@gmail.com>
Diffstat (limited to 'var')
-rw-r--r--var/spack/repos/builtin/packages/intel-oneapi-mkl/package.py23
1 files changed, 19 insertions, 4 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 70862a684b..4dcb107dd1 100644
--- a/var/spack/repos/builtin/packages/intel-oneapi-mkl/package.py
+++ b/var/spack/repos/builtin/packages/intel-oneapi-mkl/package.py
@@ -104,6 +104,14 @@ class IntelOneapiMkl(IntelOneApiLibraryPackage):
"cluster", default=False, description="Build with cluster support: scalapack, blacs, etc"
)
variant(
+ "mpi_family",
+ default="none",
+ values=("none", "mpich", "openmpi"),
+ description="MPI family",
+ multi=False,
+ )
+
+ variant(
"threads",
default="none",
description="Multithreading support",
@@ -184,16 +192,23 @@ class IntelOneapiMkl(IntelOneApiLibraryPackage):
if self.spec.satisfies("+cluster"):
if any(
self.spec.satisfies(m)
- for m in ["^intel-oneapi-mpi", "^intel-mpi", "^mpich", "^cray-mpich"]
+ for m in [
+ "^intel-oneapi-mpi",
+ "^intel-mpi",
+ "^mpich",
+ "^cray-mpich",
+ "mpi_family=mpich",
+ ]
):
libs.append(self._xlp64_lib("libmkl_blacs_intelmpi"))
- elif self.spec.satisfies("^openmpi"):
+ elif any(self.spec.satisfies(m) for m in ["^openmpi", "mpi_family=openmpi"]):
libs.append(self._xlp64_lib("libmkl_blacs_openmpi"))
else:
raise RuntimeError(
(
- "intel-oneapi-mpi +cluster requires one of "
- "^intel-oneapi-mpi, ^intel-mpi, ^mpich, or ^openmpi"
+ "intel-oneapi-mpi +cluster requires one of ^intel-oneapi-mpi, "
+ "^intel-mpi, ^mpich, ^cray-mpich, mpi_family=mpich, ^openmpi, "
+ "or mpi_family=openmpi"
)
)