
#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