[GHC] #9221: (super!) linear slowdown of parallel builds on 40 core machine

GHC ghc-devs at haskell.org
Fri Jun 20 06:45:15 UTC 2014


#9221: (super!) linear slowdown of parallel builds on 40 core machine
-------------------------+-------------------------------------------------
       Reporter:         |             Owner:
  carter                 |            Status:  new
           Type:  bug    |         Milestone:
       Priority:  high   |           Version:  7.8.2
      Component:         |  Operating System:  Unknown/Multiple
  Compiler               |   Type of failure:  Compile-time performance bug
       Keywords:         |         Test Case:
   Architecture:         |          Blocking:
  Unknown/Multiple       |
     Difficulty:         |
  Unknown                |
     Blocked By:         |
Related Tickets:         |
-------------------------+-------------------------------------------------
 im seeing slowdowns in parallel builds of a (simple!!) 6 module project
 when I build it on a 40 core server i'm using for work.  for any given
 ghc invocation with -jn, once n>10, i start to see a super linear slow
 down  as a function of n

 heres some basic numbers


 at -j1 0m2.693s

 at -j4  0m2.507s

 at -j10  0m2.763s

 at -j25 0m12.634s

 at -j30 :   0m39.154s

 at -j40 : 0m57.511s

 at -j60 : 2m21.821s


 these timings are another 2-4x worse if ghc is invoked indirectly via
 cabal-install / setup.hs

 according to the linux utility latencytop, 100% of ghc's cpu time was
 spent on user-space lock contention when I did the -j40 invocation.

 the timing in the -j40 case stayed the same even when ghc was also passed
 -O0 (and -fforce-recomp to ensure it did the same )


 a bit of experimentation makes me believe that in *ANY* cabalized project
 on a 40 core machine will exhibit this perf issue.

 cabal clean ; cabal configure --ghc-options="-j" ; cabal build -j1

 should be enough to trigger the lock contention.

 That said, I'll try to cook up a minimal repro that i can share the source
 for post haste.

--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/9221>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler


More information about the ghc-tickets mailing list