
#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 System | Version: 7.10.3 Resolution: | 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: | --------------------------------------------+------------------------------ Comment (by rwbarton): It really doesn't seem sensible to me to have GHC assume by default that CPUs that are off-line will magically become available under load. Though admittedly I don't know what the use of taking CPUs off-line is supposed to be. This seems like a deficiency in the operating system, that there isn't a way to ask it "how many CPUs will my program run on". It's not for GHC to work around this I think. You could do so yourself by starting a thread that periodically checks the number of currently available processors and calls `setNumCapabilities`. Or just run with `-N4`. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/12181#comment:2 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler