Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Switch to Intel MKL on systems with Intel compiler #759

Closed
climbfuji opened this issue Sep 5, 2023 · 4 comments · Fixed by #1226
Closed

Switch to Intel MKL on systems with Intel compiler #759

climbfuji opened this issue Sep 5, 2023 · 4 comments · Fixed by #1226
Assignees
Labels
enhancement New feature or request INFRA JEDI Infrastructure NAVY United States Naval Research Lab NOAA-EMC OAR-EPIC NOAA Oceanic and Atmospheric Research and Earth Prediction Innovation Center

Comments

@climbfuji
Copy link
Collaborator

climbfuji commented Sep 5, 2023

Description

The Nautilus site config shows how to switch to Intel MKL as provider for blas and lapack (and fftw-api if I remember correctly).

I think it would be good to switch to Intel MKL when using the Intel compiler, and keep openblas/fftw for gcc and clang. This ensures that we remain compatible with the different providers. We can probably make use of the require: one_of / when syntax to implement this.

Update 2023/10/11: See JCSDA/spack#342 for work that needs to be done on ectrans and ecmwf-atlas.

Requirements

See above

Acceptance Criteria (Definition of Done)

A clean solution to use Intel MKL with at least the Intel compilers.

Dependencies

n/a

@AlexanderRichert-NOAA
Copy link
Collaborator

Can you elaborate on "remain compatible with the different providers," i.e., are you talking about the downstream packages or spack-stack or..? All other things being equal I would be inclined to use openblas+fftw for everything just for consistency, but if some applications need MKL for their own fourier transform/linear algebra purposes then that's another matter.

@climbfuji
Copy link
Collaborator Author

Can you elaborate on "remain compatible with the different providers," i.e., are you talking about the downstream packages or spack-stack or..? All other things being equal I would be inclined to use openblas+fftw for everything just for consistency, but if some applications need MKL for their own fourier transform/linear algebra purposes then that's another matter.

If you take a look at the nautilus site config, you'll be able to see I think. I propose that when we use Intel compilers, we use MKL as the provider for blas, lapack, fftw-api. When we use GNU, we keep the current combination of openblas as provider for blas and lapack, and fftw for fftw-api.

@AlexanderRichert-NOAA
Copy link
Collaborator

Would it be a reasonable goal for the 1.8.0 release to build a second unified env (or subset thereof) using MKL on a handful of systems? That would give developers a chance to test and give feedback.

@climbfuji
Copy link
Collaborator Author

Would it be a reasonable goal for the 1.8.0 release to build a second unified env (or subset thereof) using MKL on a handful of systems? That would give developers a chance to test and give feedback.

Yes, of course. Good idea

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request INFRA JEDI Infrastructure NAVY United States Naval Research Lab NOAA-EMC OAR-EPIC NOAA Oceanic and Atmospheric Research and Earth Prediction Innovation Center
Projects
No open projects
5 participants