
#11054: GHC on Windows could not use more than 64 logical processors -------------------------------------+------------------------------------- Reporter: varosi | Owner: Type: feature request | Status: new Priority: normal | Milestone: 8.2.1 Component: Runtime System | Version: 7.10.2 Resolution: | Keywords: Operating System: Windows | Architecture: x86_64 Type of failure: Runtime | (amd64) performance bug | Test Case: Blocked By: | Blocking: Related Tickets: #12602 | Differential Rev(s): Phab:D2533 Wiki Page: | -------------------------------------+------------------------------------- Comment (by Phyx-): Replying to [comment:39 varosi]:
Task manager on Windows 10 shows NUMA nodes and logical cores separated. So both NUMA nodes are taken by 85-88%. On logical cores, there about 10 from 88 cores not used for some reason. They are near zero CPU usage.
A few setcapabilities failed. I need to take a look at the masks. I'll make a version which adds more debug output this weekend (I don't quite have the time today I'm araid..). I'll need it to know the masks it's computing. There's probably an off by one somewhere. But I am confused, if 78 cores out of 88 are busy, you should have gone passed the 50% mark since it went across CPU groups. Replying to [comment:40 varosi]:
Is it possible "-qa" option to be reversed, i.e. by default it to use all NUMA nodes and if someone wants for some special case to disable it?
I don't see why not, but this won't just affect Windows and I don't know why the default is to default to user managed threading. To be clear, `-qa` isn't required to use all the nodes. The only thing `-qa` does is automatically schedule the affinities for you. The default is that you should schedule them yourself. The reason could be purely historic. This is a question best asked on the ghc-devs mailing list. If you prefer I could ask for you, or you can mail directly. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/11054#comment:41 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler