[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