-
-
Notifications
You must be signed in to change notification settings - Fork 26.5k
[MRG] Vendor threadpoolctl #14980
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
[MRG] Vendor threadpoolctl #14980
Conversation
|
Can you please do that as part of the new KMeans pull request (#11950) to actually check that this is actually working as expected to protect against oversubscription issues. |
|
done |
|
If I understand correctly, we are still waiting for issues in threadpoolctl to be fixed, and good part of it is addressed in joblib 0.14 ? Maybe let's mark this as WIP then? |
joblib does not include threadpoolctl |
|
I mean for handling oversubscritpion issues in process based parallelism. |
It's done now, we released threadpoolctl 2.0 and I updated the PR accordingly.
joblib does not handle oversubscription in thread based parallelism which is needed for #11950 |
rth
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
As long as it remains private it shouldn't be too controversial. Thanks!
|
I think there is no point in merging this PR alone. I prefer to do it as part of the K-Means PR as for now, only the new K-Means implementation actually need threadpoolctl. |
|
Why vendor threadpoolctl given that we recently unvendored joblib? |
threadpoolctl is not included in joblib. We need it for KMeans to prevent oversubscription. |
|
I understand that, this isn't my question. My question is about vendoring vs having a dependency. |
|
We can't introduce a new dependency without warning 2 versions in advance, right ? |
There is no such rule. But unvendoring something public will require a deprecation cycle for backward compat but here threadpoolctl is vendored as a private module to avoid this problem. I am ok to add a dependency instead of vendoring. This is a pure python project with a rather simple API that is unlikely to change. WDYT? We probably need to discuss this at the next dev meeting. |
I'm ok with that. We need to be careful to make sure it will be installed properly when people will upgrade sklearn.
agreed I changed from vendoring to dependency in kmeans PR. I keep this one open until we discuss it in dev meeting. |
So the decision was to use a dependency at the meeting (that I missed)? In which case should we close this PR? Edit: OK, I see pending decision in #16242 |
|
There's a consensus on adding a dependency. Closing. |
Fixes #14979
see #14979 for an explanation