repro: parallel execution of stages#10922
Conversation
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #10922 +/- ##
==========================================
+ Coverage 90.68% 90.99% +0.31%
==========================================
Files 504 505 +1
Lines 39795 41112 +1317
Branches 3141 3255 +114
==========================================
+ Hits 36087 37410 +1323
- Misses 3042 3064 +22
+ Partials 666 638 -28 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
ed33d83 to
10383e1
Compare
10383e1 to
312753e
Compare
312753e to
37398ea
Compare
37398ea to
3a821ca
Compare
|
I think there are some flaky tests :( |
|
Looking at the code I noticed that you're using the ThreadPoolExecutor which implements async-based parallelism. This is certainly good for I/O bound tasks but, according to our experience, DVC stages are mainly dealing with CPU bound tasks. |
❗ I have followed the Contributing to DVC checklist.
📖 If this PR requires documentation updates, I have created a separate PR (or issue, at least) in dvc.org and linked it here.
Thank you for the contribution - we'll try to review it as soon as possible. 🙏
TODO
--jobsargument to CLIOTHER THOUGHTS
Obviously, when adding a feature like parallel execution, one of the first objections will be something like "but what if two stages can't run in parallel?". The quick answer is: then don't run in parallel!
But I think it would also be pretty easy to accommodate this in a fairly generic way. For example:
Probably self-explanatory, but the idea behind this is:
I'd be happy to contribute a follow-up PR with the
mutexfeature, if you like the idea