[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