Skip to content

Conversation

@jeremiedbb
Copy link
Member

Fixes #14979

see #14979 for an explanation

@ogrisel
Copy link
Member

ogrisel commented Sep 14, 2019

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.

@jeremiedbb
Copy link
Member Author

done

@rth
Copy link
Member

rth commented Oct 4, 2019

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?

@jeremiedbb jeremiedbb changed the title [MRG] Vendor threadpoolctl [WIP] Vendor threadpoolctl Oct 4, 2019
@jeremiedbb
Copy link
Member Author

and good part of it is addressed in joblib 0.14

joblib does not include threadpoolctl

@rth
Copy link
Member

rth commented Oct 4, 2019

I mean for handling oversubscritpion issues in process based parallelism.

@jeremiedbb jeremiedbb changed the title [WIP] Vendor threadpoolctl [MRG] Vendor threadpoolctl Dec 31, 2019
@jeremiedbb
Copy link
Member Author

If I understand correctly, we are still waiting for issues in threadpoolctl to be fixed,

It's done now, we released threadpoolctl 2.0 and I updated the PR accordingly.

I mean for handling oversubscritpion issues in process based parallelism.

joblib does not handle oversubscription in thread based parallelism which is needed for #11950

Copy link
Member

@rth rth left a 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!

@ogrisel
Copy link
Member

ogrisel commented Jan 3, 2020

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.

@NicolasHug
Copy link
Member

Why vendor threadpoolctl given that we recently unvendored joblib?

@jeremiedbb
Copy link
Member Author

Why vendor threadpoolctl given that we recently unvendored joblib?

threadpoolctl is not included in joblib. We need it for KMeans to prevent oversubscription.

@NicolasHug
Copy link
Member

I understand that, this isn't my question.

My question is about vendoring vs having a dependency.

@jeremiedbb
Copy link
Member Author

We can't introduce a new dependency without warning 2 versions in advance, right ?
I guess we could do both vendor and warn that it will be a dependency in 2 versions. What do you think @ogrisel ?

@ogrisel
Copy link
Member

ogrisel commented Jan 20, 2020

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.

@jeremiedbb
Copy link
Member Author

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?

I'm ok with that. We need to be careful to make sure it will be installed properly when people will upgrade sklearn.

We probably need to discuss this at the next dev meeting.

agreed

I changed from vendoring to dependency in kmeans PR. I keep this one open until we discuss it in dev meeting.

@rth
Copy link
Member

rth commented Feb 5, 2020

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

@jeremiedbb
Copy link
Member Author

There's a consensus on adding a dependency. Closing.

@jeremiedbb jeremiedbb closed this Feb 6, 2020
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.

Vendor threadpoolctl

4 participants