[GHC] #8224: Excessive system time -- new IO manager problem?

GHC ghc-devs at haskell.org
Thu Nov 10 08:49:19 UTC 2016


#8224: Excessive system time -- new IO manager problem?
-------------------------------------+-------------------------------------
        Reporter:  rrnewton          |                Owner:
            Type:  bug               |               Status:  new
        Priority:  high              |            Milestone:  8.2.1
       Component:  Runtime System    |              Version:  7.7
      Resolution:                    |             Keywords:  IO Manager,
                                     |  System Time
Operating System:  Linux             |         Architecture:  x86_64
 Type of failure:  Runtime           |  (amd64)
  performance bug                    |            Test Case:
      Blocked By:                    |             Blocking:
 Related Tickets:  #9221             |  Differential Rev(s):
       Wiki Page:                    |
-------------------------------------+-------------------------------------

Comment (by slyfox):

 Replying to [comment:30 alkar]:
 > Hi, as a developer on 48-core machine, I upvote the issue. I can
 reproduce it with many programs, e.g. this trivial one:
 >
 >
 > {{{
 > #!bash
 > $ cat x.hs
 > main = getContents >>= print . length
 > $ ghc -O2 -rtsopts -threaded x
 > $ time head -c10MB /dev/zero | ./x
 > 10000000
 >
 > real    0m0.182s
 > user    0m0.180s
 > sys     0m0.012s
 > $ time head -c10MB /dev/zero | ./x +RTS -N
 > 10000000
 >
 > real    0m1.782s
 > user    0m45.183s
 > sys     0m10.305s
 > }}}
 >
 > The problem can be tamed with -A option (somewhere around 200M is
 optimal in my case), but still it's pretty bad:
 >
 > {{{
 > #!bash
 > $ time head -c10MB /dev/zero | ./x +RTS -N -A200M
 > 10000000
 >
 > real    0m0.712s
 > user    0m1.144s
 > sys     0m0.412s
 > }}}

 Can you share a bit more info on your setup?

 - GHC version you tried it on
 - where does '''+RTS -s''' claim to attribute the time to
 - '''lstopo-no-graphics''' output
 - '''numactl''' -H output

 A few tweaks happened in #9221 since latest GHC-8.0.1 release. It has a
 few more knobs to tune like
 '''-qn<value>''' (number of GC threads), '''-n<value>''' (nursery chunks),
 '''-qb0''' (work-stealing nursery scan mode).

--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/8224#comment:31>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler


More information about the ghc-tickets mailing list