diff options
author | William R Tobin <4522899+wrtobin@users.noreply.github.com> | 2023-08-10 07:33:29 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-08-10 10:33:29 -0400 |
commit | b8bfaf65bf0676bd7c2c2f618105d0ed84a64655 (patch) | |
tree | 0809804825cbd70ec435e51f280bcb44db72adf5 /var | |
parent | 7968cb7fa23f0365c00401baeed90a0dfdb4a35e (diff) | |
download | spack-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.py | 23 |
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" ) ) |