Skip to content

spack-stack develop doesn't build on Nautilus with Intel Classic since update to [email protected] #1437

@climbfuji

Description

@climbfuji

Describe the bug

The builds of downstream packages of [email protected], for example py-h5py, fail with an error about Intel MKL:

libmkl_def.so.2: undefined symbol: mkl_sparse_optimize_bsr_trsm_i8

I researched a bit, and it seems that this is because the new meson build for py-numpy (introduced in version 26, which is what we need for other Python dependencies) fails to add the mkl_core library and link to it, too. According to this post (https://www.intel.com/content/www/us/en/developer/articles/release-notes/intel-math-kernel-library-release-notes-and-new-features.html), it could also be that one would have to link to mkl_rt instead of the individual libraries.

Be it as it may, the impact is limited to a few systems that use the classic Intel compilers and use Intel MKL instead of Openblas. All NOAA RDHPCS systems use Openblas, some of the JCSDA-maintained systems probably as well.

I am not going to spend time to fix the py-numpy%intel +intel-oneapi-mkl builds. We already added a conflict for new py-scipy versions with %intel, and we'll likely remove support for the classic Intel compilers entirely in spack-stack-1.10.0 (that is, not the next release, but the one afterwards).

Instead, I will do one of the two:

  • Remove the Intel Classic compiler option on Nautilus and on any other NRL system that has the same issue (we will run NEPTUNE in operations with icx, icpx, ifort at the beginning; I confirmed that the mixed %oneapi compilers do not have this problem on Nautilus).
  • Update the neptune-dev template such that with %intel, we only build a limited stack without Python dependencies.

Since the second option has some serious limitations and probably won't work for the unified environment, I am leaning towards the first option.
 
To Reproduce

Build neptune standalone environment, unified environment, or any other environment that uses py-numpy and dependent packages (py-h5py, ...) with %intel on Nautilus (this is [email protected]).

Expected behavior
Obviously, the packages should build without the MKL error shown above

System:
DOD HPCMP Nautilus with [email protected] and spack-stack develop as of mid December, 2024 (i.e. after the update to [email protected]).

Additional context
n/a

Metadata

Metadata

Assignees

Labels

NAVYUnited States Naval Research LabbugSomething is not working

Type

No type

Projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions