[GHC] #9221: (super!) linear slowdown of parallel builds on 40 core machine
GHC
ghc-devs at haskell.org
Thu Jul 30 22:31:32 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):
The selfcontained test contains 195 modules to build highlighting-kate:
http://code.haskell.org/~slyfox/T9221__highlighting-kate-build-
benchmark.tar.gz
To run it you need to tweak a path to your 'ghc=' in '''mk.bash'''.
On my 8 core box best results can be achieved by setting -A128M (or
larger).
The test is handy to run 'perf record' on it. My results for '''./mk.bash
-j8 -A128M''':
{{{
$ perf record -g ./mk.bash -j8 -A128M
$ perf report -g
+ 15,42% 0,78% ghc_worker libc-2.21.so [.]
__sched_yield
+ 15,08% 1,62% ghc_worker [kernel.vmlinux] [k]
entry_SYSCALL_64
+ 12,70% 0,38% ghc_worker [kernel.vmlinux] [k]
sys_sched_yield
+ 10,91% 6,47% ghc_worker ghc-stage2 [.] clE_info
+ 10,50% 0,38% ghc_worker [kernel.vmlinux] [k] schedule
+ 9,14% 1,58% ghc_worker [kernel.vmlinux] [k] __schedule
+ 8,60% 0,00% ghc_worker [unknown] [.]
0x48032822f800c748
+ 5,85% 5,64% ghc_worker ghc-stage2 [.] evacuate
+ 3,47% 0,94% ghc_worker ghc-stage2 [.] c7F_info
+ 2,91% 0,69% ghc_worker [kernel.vmlinux] [k]
pick_next_task_fair
+ 2,70% 0,00% ghc_worker [unknown] [.]
0x0000000000000004
+ 2,63% 2,28% ghc_worker ghc-stage2 [.] c2k_info
+ 2,55% 0,00% ghc_worker [unknown] [.]
0x2280f98148088b48
+ 1,90% 0,00% ghc_worker [unknown] [.]
0x834807e283da8948
+ 1,90% 0,00% as ld-2.21.so [.]
_dl_sysdep_start
+ 1,89% 0,00% as ld-2.21.so [.] dl_main
+ 1,83% 0,15% as [kernel.vmlinux] [k] page_fault
+ 1,81% 0,47% as ld-2.21.so [.]
_dl_relocate_object
}}}
If perf does not lie most of the time is spent cycling over sleeping
kernel threads.
'''clE_info''' is a
'INFO_TABLE(stg_BLACKHOLE,1,0,BLACKHOLE,"BLACKHOLE","BLACKHOLE")'
--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/9221#comment:28>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the ghc-tickets
mailing list