-
Notifications
You must be signed in to change notification settings - Fork 20
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
Change default scheduler for eachobsparallel
#80
Conversation
Now uses `TaskPoolEx`
what's going on with CI never finishing? |
Is that just for this PR? If CI is running single-threaded, then starting a task pool with background only-tasks will never yield a valid task if only one task is available. |
To get something that runs even on single-threaded Julia setups
Codecov Report
@@ Coverage Diff @@
## main #80 +/- ##
=======================================
Coverage 89.89% 89.89%
=======================================
Files 14 14
Lines 475 475
=======================================
Hits 427 427
Misses 48 48
Continue to review full report at Codecov.
|
Can we tag a new patch release for this? |
Doing it right now. |
Just a heads up: since |
This changes the default executor of
eachobsparallel
to useTaskPoolEx(basesize=1, background=true)
. I did some more testing and found that this peforms on-par with DataLoaders.jl.I used the following (CPU- and IO-heavy) benchmark:
Both finish in 4.5s, reaching 3000samples/s throughput on my machine with Julia 1.7.2,
Threads.nthreads() == 12
(CPU: AMD Ryzen Threadripper 1920X 12-Core). Also tested on 1.8.0-beta3 with similar results.This also fixes the issue with the previous default executor (
ThreadedEx
) that was so fast that it froze the primary thread and even other processes like the SSH server (as experienced by me and @darsnack).Happy to say this was the last blocker before deprecating DataLoaders.jl and moving FastAI.jl to depend on MLUtils.jl (see FluxML/FastAI.jl#196)