#1589: Process creation and communication doesn't scale linearly
----------------------------+-----------------------------------------------
Reporter: guest | Owner: simonmar
Type: bug | Status: new
Priority: normal | Milestone: 6.10 branch
Component: Runtime System | Version: 6.7
Severity: minor | Resolution:
Keywords: | Difficulty: Moderate (1 day)
Testcase: | Architecture: Multiple
Os: Multiple |
----------------------------+-----------------------------------------------
Comment (by simonmar):
Just for your enjoyment, here is how my current development tree does on
this benchmark:
{{{
./threads1589 1000000 0 +RTS -sstderr -k200
274,891,208 bytes allocated in the heap
788,755,388 bytes copied during GC
176,005,076 bytes maximum residency (8 sample(s))
31,957,908 bytes maximum slop
387 MB total memory in use (3 MB lost due to fragmentation)
Generation 0: 518 collections, 0 parallel, 1.83s, 1.84s elapsed
Generation 1: 8 collections, 0 parallel, 1.36s, 1.76s elapsed
INIT time 0.00s ( 0.00s elapsed)
MUT time 0.74s ( 0.76s elapsed)
GC time 3.19s ( 3.60s elapsed)
EXIT time 0.25s ( 0.42s elapsed)
Total time 4.18s ( 4.61s elapsed)
%GC time 76.4% (78.1% elapsed)
Alloc rate 278,209,693 bytes per MUT second
Productivity 23.6% of total user, 21.4% of total elapsed
}}}
4.6us per thread, and it scales just slightly worse than linearly until my
laptop runs out of memory. The test is doing a bit more than just
creating threads, it passes a single message along the chain of threads
after creating them all, which is why it needs linear heap space and hence
won't scale completely linearly.
It'll be a while until I commit this as it's on top of a ton of other
stuff I have to get committed, but I'm getting there.
--
Ticket URL: <http://hackage.haskell.org/trac/ghc/ticket/1589#comment:5>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler_______________________________________________
Glasgow-haskell-bugs mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs