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

GHC ghc-devs at haskell.org
Sun Oct 9 22:55:04 UTC 2016


#9221: (super!) linear slowdown of parallel builds on 40 core machine
-------------------------------------+-------------------------------------
        Reporter:  carter            |                Owner:
            Type:  bug               |               Status:  new
        Priority:  normal            |            Milestone:  8.2.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, #8224       |  Differential Rev(s):
       Wiki Page:                    |
-------------------------------------+-------------------------------------

Comment (by Ben Gamari <ben@…>):

 In [changeset:"85e81a850a3e79d965e18f267a0e0b1c4bc69fae/ghc" 85e81a8/ghc]:
 {{{
 #!CommitTicketReference repository="ghc"
 revision="85e81a850a3e79d965e18f267a0e0b1c4bc69fae"
 Turn on -n4m with -A16m or greater

 Nursery chunks help reduce the cost of GC when capabilities are unevenly
 loaded, by ensuring that we use more of the available nursery.

 The rationale for enabling this at -A16m is that any negative effects
 due to loss of cache locality are less likely to be an issue at -A16m
 and above.  It's a conservative guess.  If we had a lot of benchmark
 data we could probably do better.

 Results for nofib/parallel at -N4 -A32m with and without -n4m:

 ```
 ------------------------------------------------------------------------
         Program           Size    Allocs   Runtime   Elapsed  TotalMem
 ------------------------------------------------------------------------
    blackscholes           0.0%     -9.5%     -9.0%    -15.0%     -2.2%
           coins           0.0%     -4.7%     -3.6%     -0.6%    -13.6%
          mandel           0.0%     -0.3%     +7.7%    +13.1%     +0.1%
         matmult           0.0%     +1.5%    +10.0%     +7.7%     +0.1%
           nbody           0.0%     -4.1%     -2.9%     0.085      0.0%
          parfib           0.0%     -1.4%     +1.0%     +1.5%     +0.2%
         partree           0.0%     -0.3%     +0.8%     +2.9%     -0.8%
            prsa           0.0%     -0.5%     -2.1%     -7.6%      0.0%
          queens           0.0%     -3.2%     -1.4%     +2.2%     +1.3%
             ray           0.0%     -5.6%    -14.5%     -7.6%     +0.8%
        sumeuler           0.0%     -0.4%     +2.4%     +1.1%      0.0%
 ------------------------------------------------------------------------
             Min           0.0%     -9.5%    -14.5%    -15.0%    -13.6%
             Max           0.0%     +1.5%    +10.0%    +13.1%     +1.3%
  Geometric Mean          +0.0%     -2.6%     -1.3%     -0.5%     -1.4%
 ```

 Not conclusive, but slightly better.  This matters a lot more when you
 have more cores.

 Test Plan: validate, nofib/paralel

 Reviewers: niteria, ezyang, nh2, trofi, austin, erikd, bgamari

 Reviewed By: bgamari

 Subscribers: thomie

 Differential Revision: https://phabricator.haskell.org/D2581

 GHC Trac Issues: #9221
 }}}

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


More information about the ghc-tickets mailing list