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

remove track_features for openmp #164

Open
wants to merge 2 commits into
base: main
Choose a base branch
from
Open

Conversation

minrk
Copy link
Member

@minrk minrk commented Sep 13, 2024

Any package that might call blas from openmp must conflict with the pthreads build of openmp. From the openblas faq:

OpenMP provides its own locking mechanisms, so when your code makes BLAS/LAPACK calls from inside OpenMP parallel regions it is imperative that you use an OpenBLAS that is built with USE_OPENMP=1, as otherwise deadlocks might occur.

But adding the required constraint:

run_constrained:
  - openblas=*=*openmp*

to exclude the incompatible pthreads build results in a default solve with libblas=*=blis and liblapack=*=netlib due to the features minimization to exclude openmp having higher priority than the preference for openblas.

In general, the opemp builds of openblas should be strictly more compatible, so I'm not sure why it's deprioritized so severely (in #99). The test case there doesn't give any errors with libopenblas=0.3.27=openmp_h25fa9fd_1 and llvm-openmp=18.1.8=hf5423f3_1.

Maybe there's another way to weigh down netlib even more so liblapack=*=openblas + openblas=*=*openmp* is a preferred solution to liblapack=*=netlib? Would adding more features on liblapack netlib do that?

I also added the missing run_exports to openblas, which is the package required in host dependencies for linking openblas.

weighing down the openmp build means that adding a constraint on openblas with openmp
results in a default installation of blas=blis and lapack=netlib
openblas is the package needed as host depencency,
so it should have run_exports for libopenblas
@conda-forge-webservices
Copy link

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 (recipe/meta.yaml) and found it was in an excellent condition.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant