[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:"6c47f2efa3f8f4639f375d34f54c01a60c9a1a82/ghc"
 6c47f2ef/ghc]:
 {{{
 #!CommitTicketReference repository="ghc"
 revision="6c47f2efa3f8f4639f375d34f54c01a60c9a1a82"
 Default +RTS -qn to the number of cores

 Setting a -N value that is too large has a dramatic negative effect on
 performance, but the new -qn flag can mitigate the worst of the effects
 by limiting the number of GC threads.

 So now, if you don't explcitly set +RTS -qn, and you set -N larger than
 the number of cores (or use setNumCapabilities to do the same), we'll
 default -qn to the number of cores.

 These are the results from nofib/parallel on my 4-core (2 cores x 2
 threads) i7 laptop, comparing -N8 before and after this change.

 ```
 ------------------------------------------------------------------------
         Program           Size    Allocs   Runtime   Elapsed  TotalMem
 ------------------------------------------------------------------------
    blackscholes          +0.0%     +0.0%    -72.5%    -72.0%     +9.5%
           coins          +0.0%     -0.0%    -73.7%    -72.2%     -0.8%
          mandel          +0.0%     +0.0%    -76.4%    -75.4%     +3.3%
         matmult          +0.0%    +15.5%    -26.8%    -33.4%     +1.0%
           nbody          +0.0%     +2.4%     +0.7%     0.076      0.0%
          parfib          +0.0%     -8.5%    -33.2%    -31.5%     +2.0%
         partree          +0.0%     -0.0%    -60.4%    -56.8%     +5.7%
            prsa          +0.0%     -0.0%    -65.4%    -60.4%      0.0%
          queens          +0.0%     +0.2%    -58.8%    -58.8%     -1.5%
             ray          +0.0%     -1.5%    -88.7%    -85.6%     -3.6%
        sumeuler          +0.0%     -0.0%    -47.8%    -46.9%      0.0%
 ------------------------------------------------------------------------
             Min          +0.0%     -8.5%    -88.7%    -85.6%     -3.6%
             Max          +0.0%    +15.5%     +0.7%    -31.5%     +9.5%
  Geometric Mean          +0.0%     +0.6%    -61.4%    -63.1%     +1.4%
 ```

 Test Plan: validate, nofib/parallel benchmarks

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

 Reviewed By: trofi, bgamari

 Subscribers: thomie

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

 GHC Trac Issues: #9221
 }}}

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


More information about the ghc-tickets mailing list