--
---
You received this message because you are subscribed to the Google Groups "golang-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to golang-dev+...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.
Great job, Dmitry! Did you manage to run some benchmarks against the round robin scheduler? Should we now implement the number crunching scheduler against this version?
Great job, Dmitry! Did you manage to run some benchmarks against the round robin scheduler? Should we now implement the number crunching scheduler against this version?
How do you propose to get these CLs submitted? They're a bit large right now.
--
---
You received this message because you are subscribed to the Google Groups "golang-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to golang-dev+...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.
the question is: should Go provide 2 schedulers (one for IO, the other
for NC, chosen by the user at compile time), or is there a provably
good scheduler that does both tasks optimally
I agree, Brad. Simplicity is best. But what if one scheduler
outperforms the other *significantly* for their given tasks?
Sorry, I don't understand your sentence. What work is that?
|
new: matmult -size=1500 -proc=1 -mode=parallel-chan -threshold=16 real 0m19.091s old: matmult -size=1500 -proc=1 -mode=parallel-chan -threshold=16 real 0m18.955s new: matmult -size=1500 -proc=2 -mode=parallel-chan -threshold=16 real 0m9.368s old: matmult -size=1500 -proc=2 -mode=parallel-chan -threshold=16 real 0m10.676s new: matmult -size=1500 -proc=4 -mode=parallel-chan -threshold=16 real 0m4.904s old: matmult -size=1500 -proc=4 -mode=parallel-chan -threshold=16 real 0m5.885s new: matmult -size=1500 -proc=8 -mode=parallel-chan -threshold=16 real 0m2.648s old: matmult -size=1500 -proc=8 -mode=parallel-chan -threshold=16 real 0m3.761s new: matmult -size=1500 -proc=16 -mode=parallel-chan -threshold=16 real 0m1.422s old: matmult -size=1500 -proc=16 -mode=parallel-chan -threshold=16 real 0m3.658s new: matmult -size=1500 -proc=32 -mode=parallel-chan -threshold=16 real 0m1.138s old: matmult -size=1500 -proc=32 -mode=parallel-chan -threshold=16 real 0m3.560s current(old) scheduler achieves only 2.5786 speedup, while the new - 16.7759. Note that with 16 threads the speedup is 13.4254, which is close to ideal, then it seems that hyper threading provides less speedup. |
This is good new Indeed, thanks for the Update. Looks like excellent work. Along with all the other performance tunings and enhancements the upcoming release should make some waves.@All ... it does not seem to do the upcoming release justice anymore to only call it "1.1", because the ".1" suggests that it was just a minor bug fixing release. However we are looking at some major enhancements: Parallel and precise Garbage Collection and now also a new Scheduler would justify bumping it up to at least 1.5. Those are just my humble thoughts, I have no idea if it is even possible to actually do this, so feel free to ignore the suggestion if it is too unrealistic.
On Friday, February 8, 2013 3:09:58 PM UTC+1, Dmitry Vyukov wrote:Good news everyone!
I've updated my scheduler patch to tip:
https://codereview.appspot.com/7314062
(I had to create new changelist due to some issues with codereview site)
It passed all possible tests on std lib. Race detector also seems to
be happy. And I discovered a bug in current runtime thanks to the
patch:
https://codereview.appspot.com/7307073/diff/5001/src/pkg/runtime/parfor.c
--
Has Go1.1 been feature-frozen or not yet?
Is there a relatively formal feature list?
On Tuesday, February 26, 2013 10:52:52 AM UTC+8, rsc wrote:No one making any promises one way or the other about what will be in Go 1.1. And if something is not in Go 1.1 there is always Go 1.2. Don't worry too much about it.
Russ