-
Notifications
You must be signed in to change notification settings - Fork 9
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
workload
option (uniform and non-uniform)
#60
Comments
Having slept on it for a night or two, I (still) think I want to have this. Especially for beginners, we could just tell them to flip the For the macro API, I think I prefer the @hint workload=:uniform
@set scheduler=:greedy in which case we might want to throw a warning that a different scheduler might be better? (how bad is it for uniform workload?) If @MasonProtter also thinks this is something to explore/implement, I will try to add this to the function API first and later add a |
Yeah I think this is a good idea. The part I worry about though is if (by the way, I just noticed that mention of this was removed from the docstrings at some point, which I think is bad) |
That's a good point. Of course, we don't have to default to |
Hm, don't know how this happend but I'll re-add this. (done) |
I wonder whether we should have a simple option
workload = :uniform
/workload = :nonuniform
that translates into, say,DynamicScheduler(; nchunks=nthreads())
orDynamicScheduler(; nchunks=4*nthreads())
respectively.The thing is that many people don't care about scheduling details like chunking and so on. For them, it would be nice to just have one simple switch that gives reasonable settings.
The idea came to me in the context of the macro API (#53)
We could either translate the workload specification straight into a scheduler setting (it would essentially just be an alias) or make it a
@hint workload=:uniform
which tries to find settings for the selected scheduler that make most sense for this workload. For examplecould lead to
DynamicScheduler(; nchunks=nthreads())
andto
DynamicScheduler(; nchunks=4*nthreads())
. Similarly,could lead to
StaticScheduler(; split=:scatter)
to get some "poor-mans's load balancing".The text was updated successfully, but these errors were encountered: