joblib.parallel with patsy?
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 990
- Forks
- 106
- Avg merge
- 7d 34m
- Merged PRs (30d)
- 1
Description
So one of my datasets can be super-huge and therefore, super-slow by my impatient standards. I can sit there for 3-5 minutes just waiting for a design matrix to be built (on one core). There's lots of terms/factors in this model. I have plenty of spare CPU's just sitting waiting for this to finish before the GLM can be kicked off.
Crazy idea... would it make any sense to incorporate joblib.parallel in patsy?
I have 2 ideas...
Simple idea is to just call joblib.parallel on the dmatrix call and make those in parallel.
Slightly more crazy idea would be to try to incorporate this inside patsy. I see 2 potential (somewhat) easy placements...
I recognize this brings opens a can of worms--transferring the data and state between the parent and child nodes is not free... new complexity in debugging... And doing things in parallel should be after other optimizations. (Tell me... is 5 minutes to run dmatrix on 30 million rows with about 50 output columns slower than you'd think?)
So before I go down this potentially very dumb rabbit hole, I'm happy to hear the thoughts of people who have better knowledge/experience with these topics.
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reading patsy/build.py at the two locations linked in the issue, lines 442 and 886, and review how the dmatrix call is involved. Benchmark the reported large-dataset case before evaluating joblib.parallel; the issue does not yet define an agreed implementation or testable completion criteria.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- data, performance
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100