[GHC] #9221: (super!) linear slowdown of parallel builds on 40 core machine
GHC
ghc-devs at haskell.org
Fri Jul 31 22:01:47 UTC 2015
#9221: (super!) linear slowdown of parallel builds on 40 core machine
-------------------------------------+-------------------------------------
Reporter: carter | Owner:
Type: bug | Status: new
Priority: high | Milestone: 7.12.1
Component: Compiler | Version: 7.8.2
Resolution: | Keywords:
Operating System: Unknown/Multiple | Architecture:
Type of failure: Compile-time | Unknown/Multiple
performance bug | Test Case:
Blocked By: | Blocking:
Related Tickets: #910 | Differential Revisions:
-------------------------------------+-------------------------------------
Comment (by slyfox):
Replying to [comment:29 bgamari]:
> slyfox, out of curiosity what sort of parallel speed-up did you observe
in that test?
At best I get ~2.5 speedup (-j8 -A128M):
- -j1 : 41.1s
- -j8 -A128M : 17.4s
Replying to [comment:31 simonmar]:
> It sounds like there might be a lot of threads hitting blackholes, with
consequent context-switching churn. Finding out which blackhole would be
good - probably something in a shared data structure (NameCache or the
FastString table, perhaps). ThreadScope would be a good next step.
Tried to run as: '''./mk.bash -j8 +RTS -A128m -l''':
http://code.haskell.org/~slyfox/T9221-A128M-j8-l.eventlog
I see a chain of 'thread yields', 'blocked on an MVar' there, but can't
draw any conclusions.
Can I somehow get callers of blackhole? I guess 'perf report -G' will lie
as stacks are lost, but here goes it's output:
{{{
Children Self Command Shared Object Symbol
+ 15,92% 0,81% ghc_worker libc-2.21.so [.]
__sched_yield
+ 15,54% 1,69% ghc_worker [kernel.vmlinux] [k]
entry_SYSCALL_64
+ 13,11% 0,40% ghc_worker [kernel.vmlinux] [k]
sys_sched_yield
- 10,85% 6,43% ghc_worker ghc-stage2 [.] clI_info
- 40,76% clI_info (stg_BLACKHOLE_info)
+ 2,23% c8E2_info (ghc_Pretty_reduceDoc_info)
+ 1,81% c9p9_info (ghc_Pretty_vcatzugo_info)
+ 1,65% cJw6_info (ghczmprim_GHCziClasses_divIntzh_info)
+ 1,62% c8zA_info (...others)
+ 1,62% ca_info
+ 1,39% apic_timer_interrupt
+ 1,34% c4nL_info
+ 1,33% c3ZK_info
+ 1,27% c2k_info
+ 1,04% cmKx_info
+ 1,03% cp2g_info
0,92% cp_info
+ 0,89% shV8_info
+ 0,88% strlen
+ 0,88% c9r1_info
+ 0,87% r63b_info
+ 0,79% s1P5_info
+ 0,73% c4IG_info
+ 0,69% c4uY_info
+ 0,63% r117_info
+ 0,62% sw4Y_info
0,62% cqIM_info
0,61% caEA_info
+ 0,58% c2l_info
0,57% cyqt_info
+ 0,52% c9xp_info
33,29% 0x480328785000c748
+ 1,82% 0x4b7202f9834807e1
+ 1,54% 0x4808588b48f8e083
+ 0,87% 0x438b482677000003
+ 0,87% 0x8d3b49307507c1f6
+ 0,82% 0x4640cd24fffc498b
+ 0,81% 0xf07f98348fc498b
+ 0,75% 0x9b820f02f8
+ 0,65% 0x24ff07e283da8948
+ 0,63% 0x11d820f0af883
+ 0,61% 0xf4b8b4807438b48
+ 0,53% 0x58c48349677202f8
+ 0,50% 0x48074b8b48d88948
+ 10,79% 0,38% ghc_worker [kernel.vmlinux] [k] schedule
+ 9,44% 1,60% ghc_worker [kernel.vmlinux] [k] __schedule
}}}
--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/9221#comment:33>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the ghc-tickets
mailing list