#1589: Process creation and communication doesn't scale linearly
----------------------------+-----------------------------------------------
Reporter: guest | Owner: simonmar
Type: bug | Status: closed
Priority: normal | Milestone: 6.10 branch
Component: Runtime System | Version: 6.7
Severity: minor | Resolution: fixed
Keywords: | Difficulty: Moderate (1 day)
Testcase: | Architecture: Multiple
Os: Multiple |
----------------------------+-----------------------------------------------
Changes (by simonmar):
* status: new => closed
* resolution: => fixed
Comment:
Here's the results with the current HEAD. GHC doesn't even break a sweat
with a million threads:
{{{
$ ./1589 1000000
Creating pipeline with 1000000 processes in it.
Pumping a single message through the pipeline.
Pumping a 100 messages through the pipeline.
n create pump1 pump2 create/n pump1/n pump2/n
s s s us us us
1000000 5.612 1.108 17.969 5.61 1.11 0.18
}}}
Creation scales linearly until I run out of memory. You can improve the
results even more by making stacks start a bit smaller:
{{{
$ ./1589 1000000 +RTS -k500
Creating pipeline with 1000000 processes in it.
Pumping a single message through the pipeline.
Pumping a 100 messages through the pipeline.
n create pump1 pump2 create/n pump1/n pump2/n
s s s us us us
1000000 3.780 1.140 15.009 3.78 1.14 0.15
}}}
--
Ticket URL: <http://hackage.haskell.org/trac/ghc/ticket/1589#comment:6>
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