diff options
-rw-r--r-- | var/spack/repos/builtin/packages/elpa/package.py | 8 | ||||
-rw-r--r-- | var/spack/repos/builtin/packages/intel-oneapi-mkl/package.py | 9 |
2 files changed, 7 insertions, 10 deletions
diff --git a/var/spack/repos/builtin/packages/elpa/package.py b/var/spack/repos/builtin/packages/elpa/package.py index 8e0ac1e70f..faad6d95bc 100644 --- a/var/spack/repos/builtin/packages/elpa/package.py +++ b/var/spack/repos/builtin/packages/elpa/package.py @@ -171,8 +171,14 @@ class Elpa(AutotoolsPackage, CudaPackage, ROCmPackage): options += self.enable_or_disable("openmp") + # if using mkl with openmp support, link with openmp + mkl_openmp_flag = ( + self.compiler.openmp_flag + if self.spec.satisfies("^intel-oneapi-mkl threads=openmp") + else "" + ) options += [ - "LDFLAGS={0}".format(spec["lapack"].libs.search_flags), + "LDFLAGS={0} {1}".format(mkl_openmp_flag, spec["lapack"].libs.search_flags), "LIBS={0} {1}".format(spec["lapack"].libs.link_flags, spec["blas"].libs.link_flags), ] 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 3bf6dfd225..6fc27e8074 100644 --- a/var/spack/repos/builtin/packages/intel-oneapi-mkl/package.py +++ b/var/spack/repos/builtin/packages/intel-oneapi-mkl/package.py @@ -179,7 +179,6 @@ class IntelOneapiMkl(IntelOneApiLibraryPackage): def _find_mkl_libs(self, shared): libs = [] - threading_libs = [] if self.spec.satisfies("+cluster"): libs.extend([self._xlp64_lib("libmkl_scalapack"), "libmkl_cdft_core"]) @@ -192,12 +191,6 @@ class IntelOneapiMkl(IntelOneApiLibraryPackage): libs.append("libmkl_intel_thread") else: libs.append("libmkl_gnu_thread") - - # this is slightly different than what link-line advisor suggests. - # here it uses what the compiler suggests to use to enable openmp, - # instead of being explicit about in which path openmp libraries - # are located (e.g. intel libiomp5, gcc libgomp, clang libomp). - threading_libs += [self.compiler.openmp_flag] else: libs.append("libmkl_sequential") @@ -248,8 +241,6 @@ class IntelOneapiMkl(IntelOneApiLibraryPackage): except spack.error.NoLibrariesError: pass - resolved_libs += threading_libs - return resolved_libs def _xlp64_lib(self, lib): |