[GHC] #11054: GHC on Windows could not use more than 64 logical processors
GHC
ghc-devs at haskell.org
Fri Sep 30 17:23:55 UTC 2016
#11054: GHC on Windows could not use more than 64 logical processors
-------------------------------------+-------------------------------------
Reporter: varosi | Owner: Phyx-
Type: feature request | Status: patch
Priority: normal | Milestone:
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-):
Thanks for testing,
I'm not really sure yet what's going on there. It does seem to correctly
detect the configuration
{{{
[*] Number of processor groups detected: 2
[*] Number of active processors in group 0 detected: 44
[*] Number of active processors in group 1 detected: 44
[*] Processor group map created
[*] Cumulative active processors for group 0: 0
[*] Cumulative active processors for group 1: 44
}}}
Two capabilities failed to be set:
{{{
SetThreadGroupAffinity: The parameter is incorrect.
}}}
I'll see if I can figure out why. Though that's only 2 of 88.
The final dump of threads is what has be confused, as it seems to indicate
there are only 2 active threads. While the rest are all idle/blocked.
Could you try again using my test program?:
{{{
import Control.Concurrent
import Control.Monad
main = do ids <- replicateM 88 (forkIO $ print $ length $ primesToG
100000000000)
spin
spin = do threadDelay 1000
yield
spin
primesToG m = 2 : sieve [3,5..m]
where
sieve (p:xs)
| p*p > m = p : xs
| otherwise = p : sieve (xs `minus` [p*p, p*p+2*p..])
minus (x:xs) (y:ys) = case (compare x y) of
LT -> x : minus xs (y:ys)
EQ -> minus xs ys
GT -> minus (x:xs) ys
minus xs _ = xs
}}}
If it still doesn't get passed 50 I'll make a build with more verbose
output so I can better trace the behavior.
The program is a bit greedy so to kill it you'll have to kill the process.
--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/11054#comment:30>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the ghc-tickets
mailing list