Skip to content

Installation issue: intel-oneapi-mkl on macOS is unable to provide BLAS/LAPACK libraries #35577

@dev-zero

Description

@dev-zero

Steps to reproduce the issue

$ spack spec -I netlib-scalapack
Input spec
--------------------------------
 -   netlib-scalapack

Concretized
--------------------------------
[+]  [email protected]%[email protected]~ipo~pic+shared build_system=cmake build_type=Release patches=072b006,1c9ce5f,244a9aa arch=darwin-ventura-skylake
[+]      ^[email protected]%[email protected]~doc+ncurses+ownlibs~qt build_system=generic build_type=Release arch=darwin-ventura-skylake
[+]      ^[email protected]%[email protected]~cluster+envmods~ilp64+shared build_system=generic arch=darwin-ventura-skylake
[+]      ^[email protected]%[email protected]~atomics~cuda~cxx~cxx_exceptions~gpfs~internal-hwloc~java~legacylaunchers~lustre~memchecker~orterunprefix+pmi+romio+rsh~singularity~static+vt~wrapper-rpath build_system=autotools fabrics=none schedulers=slurm arch=darwin-ventura-skylake

with the following in packages.yaml:

  intel-oneapi-mkl:
    externals:
    - spec: [email protected]
      prefix: /opt/intel/oneapi
  intel-oneapi-tbb:
    externals:
    - spec: [email protected]
      prefix: /opt/intel/oneapi

and intel-oneapi-mkl installed with the OneAPI base package installer.

Error message

==> netlib-scalapack: Executing phase: 'cmake'
==> [2023-02-18-16:27:26.677957] '/usr/local/bin/cmake' '-G' 'Unix Makefiles' '-DCMAKE_INSTALL_PREFIX:STRING=/Users/tiziano/Projects/spack/opt/spack/darwin-ventura-skylake/gcc-12.2.0/netlib-scalapack-2.2.0-duvvf2vs6c4vt4xu3ho4wl4dulmca7o2' '-DCMAKE_BUILD_TYPE:STRING=Release' '-DBUILD_TESTING
:BOOL=OFF' '-DCMAKE_INTERPROCEDURAL_OPTIMIZATION:BOOL=OFF' '-DCMAKE_VERBOSE_MAKEFILE:BOOL=ON' '-DCMAKE_FIND_FRAMEWORK:STRING=LAST' '-DCMAKE_FIND_APPBUNDLE:STRING=LAST' '-DCMAKE_INSTALL_RPATH_USE_LINK_PATH:BOOL=ON' '-DCMAKE_INSTALL_RPATH:STRING=/Users/tiziano/Projects/spack/opt/spack/darwin-v
entura-skylake/gcc-12.2.0/netlib-scalapack-2.2.0-duvvf2vs6c4vt4xu3ho4wl4dulmca7o2/lib;/Users/tiziano/Projects/spack/opt/spack/darwin-ventura-skylake/gcc-12.2.0/netlib-scalapack-2.2.0-duvvf2vs6c4vt4xu3ho4wl4dulmca7o2/lib64' '-DCMAKE_PREFIX_PATH:STRING=/opt/intel/oneapi/mkl' '-DBUILD_SHARED_LI
BS:BOOL=ON' '-DBUILD_STATIC_LIBS:BOOL=OFF' '-DLAPACK_FOUND=true' '-DLAPACK_INCLUDE_DIRS=/opt/intel/oneapi/mkl/include' '-DLAPACK_LIBRARIES=' '-DBLAS_LIBRARIES=' '-DCMAKE_C_FLAGS:STRING=' '/var/folders/q_/hmjtsjld2d7csxq_lt8ttrtc0000gn/T/tiziano/spack-stage/spack-stage-netlib-scalapack-2.2.0-
duvvf2vs6c4vt4xu3ho4wl4dulmca7o2/spack-src
[...]
Undefined symbols for architecture x86_64:
  "_caxpy_", referenced from:
      _claghe_ in claghe.f.o
      _clagsy_ in clagsy.f.o
      _cmmadd_ in cmmadd.f.o
      _cmmtadd_ in cmmtadd.f.o
      _cmmdda_ in cmmdda.f.o
      _cmmddat_ in cmmddat.f.o
      _PB_Cctypeset in PB_Cctypeset.c.o
      ...
[...]

Information on your system

  • Spack: 0.20.0.dev0 (c42a4ec)
  • Python: 3.11.2
  • Platform: darwin-ventura-skylake
  • Concretizer: clingo

Additional information

@rscohn2 the problem I believe is that on macOS there is no subdir intel64:

❯ ls /opt/intel/oneapi/mkl/2023.0.0
 benchmarks   bin   env   examples   include   interfaces   lib   licensing   tools

and this change fixed it:

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 8be451f656..bc149a5e54 100644
--- a/var/spack/repos/builtin/packages/intel-oneapi-mkl/package.py
+++ b/var/spack/repos/builtin/packages/intel-oneapi-mkl/package.py
@@ -153,7 +153,7 @@ def _find_mkl_libs(self, shared):
         if "+cluster" in self.spec:
             libs.append(self._xlp64_lib("libmkl_blacs_intelmpi"))

-        return find_libraries(libs, self.component_prefix.lib.intel64, shared=shared)
+        return find_libraries(libs, self.component_prefix.lib, shared=shared)

     def _xlp64_lib(self, lib):
         return lib + ("_ilp64" if "+ilp64" in self.spec else "_lp64")

spack-build-env.txt
spack-build-out.txt

General information

  • I have run spack debug report and reported the version of Spack/Python/Platform
  • I have run spack maintainers <name-of-the-package> and @mentioned any maintainers
  • I have uploaded the build log and environment files
  • I have searched the issues of this repo and believe this is not a duplicate

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions