add cap for MKL version across all flavours to avoid solver thrashing#134
Merged
Conversation
Contributor
|
Hi! This is the friendly automated conda-forge-linting service. I just wanted to let you know that I linted all conda-recipes in your PR ( I do have some suggestions for making it better though... For recipe/meta.yaml:
This message was generated by GitHub Actions workflow run https://github.com/conda-forge/conda-forge-webservices/actions/runs/13300233007. Examine the logs at this URL for more detail. |
Contributor
|
Thanks for hunting this down! |
isuruf
requested changes
Feb 13, 2025
isuruf
left a comment
Member
There was a problem hiding this comment.
Let's just use mkl-devel in host for run_exports
Suggested-By: Isuru Fernando <isuruf@gmail.com>
Member
Author
|
Feedback addressed, PTAL. :) |
Member
|
Thanks |
1 task
This was referenced Feb 20, 2025
Merged
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The blas metapackage here handles the BLAS/LAPACK flavour globally across an end-user's environment, but from the POV of the solver, it's just another version to maximize. And if there are several contradictory possibilities on which package to choose to optimize, new MKL versions will often push the solver to ignore the flavour here, and maximize the MKL version at the expense of switching the entire blas flavour of the environment, which is counter-intuitive and undesired from the POV of the users:
This is mainly relevant on windows (where we default to MKL), but obviously it affects all x64 architectures that want to use MKL.
So to avoid the temptation for the solver in wrongly updating MKL and inadvertently switching the flavour, add a cap for MKL across all flavours. This will help, because we're currently in just such a situation as explained above, due to conda-forge/intel_repack-feedstock#83, which is blocking #128.
We will likewise need to repodata patch this constraint into old blas builds, because otherwise the solver will just select an older build.
What this means going forward is that new MKL major versions can still be published as usual on https://github.com/conda-forge/intel_repack-feedstock, but it will actually require a PR on this feedstock to enable a new MKL major version in a way that becomes co-installable with other packages depending on the shared blas infrastructure. This is fully aligned with the fact that MKL uses a mix of SemVer and CalVer (or rather: both simultaneously), see conda-forge/intel_repack-feedstock#81.
PTAL @conda-forge/blas
CC @conda-forge/intel_repack