[GHC] #12181: Multi-threaded code on ARM64 GHC runtime doesn't use all available cores

GHC ghc-devs at haskell.org
Fri Jun 10 15:13:40 UTC 2016


#12181: Multi-threaded code on ARM64 GHC runtime doesn't use all available cores
-------------------------------------+-------------------------------------
           Reporter:  varosi         |             Owner:
               Type:  bug            |            Status:  new
           Priority:  normal         |         Milestone:
          Component:  Runtime        |           Version:  7.10.3
  System                             |
           Keywords:                 |  Operating System:  Unknown/Multiple
       Architecture:  arm            |   Type of failure:  Runtime
                                     |  performance bug
          Test Case:                 |        Blocked By:
           Blocking:                 |   Related Tickets:
Differential Rev(s):                 |         Wiki Page:
-------------------------------------+-------------------------------------
 This is the machine:
 [http://www.cnx-software.com/2016/04/30/setup-guide-mini-review-of-bq-
 aquaris-m10-ubuntu-edition-tablet-from-a-developers-perspective/]

 Haskell ray-tracer that uses Control.Parallel.Strategies and parBuffer
 that is working well on x64 machine and using all the cores available use
 only 2 cores from 4 in total on that ARM machine.
 This machine usually work on two cores only and when it sees that they are
 used more - it enables two more to get total of four cores.
 If I give "+RTS -N4" it works just fine. So I think the problem is that
 the runtime doesn't check for all available cores, but only for enabled.

 In the first link you could see that "lscpu" returns 4 cores in total.

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


More information about the ghc-tickets mailing list