[GHC] #7606: Stride scheduling for Haskell threads with priorities
GHC
cvs-ghc at haskell.org
Thu Feb 21 23:35:07 CET 2013
#7606: Stride scheduling for Haskell threads with priorities
---------------------------------+------------------------------------------
Reporter: ezyang | Owner: ezyang
Type: feature request | Status: new
Priority: normal | Milestone: 7.8.1
Component: Runtime System | Version: 7.7
Keywords: | Os: Unknown/Multiple
Architecture: Unknown/Multiple | Failure: None/Unknown
Difficulty: Unknown | Testcase:
Blockedby: | Blocking:
Related: |
---------------------------------+------------------------------------------
Comment(by ezyang):
OK, after a brief break, I've started working on latency benchmarks to
help evaluate how much alternative scheduling algorithms help. Of course,
the first order of business was to establish some baselines, so I ran some
tests on GHC 7.4 first, as well as a bare-bones C version of the
application. The tests are here https://github.com/ezyang/latency ;
eventually I'll integrate them with nofib (although it's not obvious how
to integrate them into the current nofib reporting framework). The basic
method is to write a byte onto a Unix domain socket; I'm sure I've botched
some instrumentation somewhere so some eyeballs here would be useful. I
can also make pretty graphs if people are interested.
System info:
{{{
[ezyang at hs01 latency]$ uname -a
Linux hs01.scs.stanford.edu 3.5.3-1-ARCH #1 SMP PREEMPT Sun Aug 26
09:14:51 CEST 2012 x86_64 GNU/Linux
}}}
GHC 7.4.2 (as installed by Arch Linux)
{{{
0% 50% 90% 99% 99.9% 99.99%
0.000016 0.000021 0.000064 0.000096 0.000157 0.000175
}}}
GHC 7.4.2 threaded -N1
{{{
0% 50% 90% 99% 99.9% 99.99%
0.000048 0.000096 0.000191 0.000221 0.000260 0.000301
}}}
GHC 7.4.2 threaded -N2
{{{
0% 50% 90% 99% 99.9% 99.99%
0.000054 0.000208 0.000264 0.000307 0.000338 0.000370
}}}
GHC 7.7.20130122 (prior to the newest latency IO manager)
{{{
0% 50% 90% 99% 99.9% 99.99%
0.000015 0.000045 0.000093 0.000117 0.000153 0.000169
}}}
GHC 7.7.20130122 (prior to the newest latency IO manager)
{{{
0% 50% 90% 99% 99.9% 99.99%
0.000015 0.000045 0.000093 0.000117 0.000153 0.000169
}}}
GHC 7.7.20130122 -threaded
{{{
0% 50% 90% 99% 99.9% 99.99%
0.000044 0.000058 0.000177 0.000219 0.000252 0.000281
}}}
GHC 7.7.20130122 -threaded -N2
{{{
0% 50% 90% 99% 99.9% 99.99%
0.000053 0.000210 0.000258 0.000298 0.000335 0.000376
}}}
I'm building a version of GHC with the latest IO manager stuff and we'll
see how that changes things...
--
Ticket URL: <http://hackage.haskell.org/trac/ghc/ticket/7606#comment:33>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the ghc-tickets
mailing list