[Hackage] #447: build multiple packages in parallel
Hackage
cvs-ghc at haskell.org
Mon Apr 2 02:48:52 CEST 2012
#447: build multiple packages in parallel
---------------------------------+------------------------------------------
Reporter: duncan | Owner: refold
Type: enhancement | Status: assigned
Priority: high | Milestone: cabal-install-0.16
Component: cabal-install tool | Version:
Severity: normal | Keywords:
Difficulty: normal | Ghcversion: 6.8.3
Platform: |
---------------------------------+------------------------------------------
Comment(by refold):
I've updated my parallel patches (see attachment). Patches apply cleanly
to the current mainline. The parallel code path now always uses the
external setup method (via `Setup.hs`), so the required changes to the
Cabal lib are minimised. There are still some traces of output
serialisation, though.
Some numbers:
{{{
$ time cabal install -j 1 alex happy
real 1m19.236s
user 1m1.330s
sys 0m10.510s
$ time cabal install -j 4 alex happy
real 0m52.106s
user 1m10.680s
sys 0m15.030s
$ time cabal install -j 1 yesod
real 19m14.913s
user 15m59.420s
sys 1m25.650s
$ time cabal install -j 4 yesod
real 14m8.599s
user 21m36.530s
sys 4m5.650s
}}}
I also tested the Nov 2011 version of the code (tries to use the internal
setup method, requires pervasive changes to Cabal lib):
{{{
$ time cabal install -j 4 alex happy
real 0m45.503s
user 1m4.040s
sys 0m10.100s
$ time cabal install -j 4 yesod
real 10m41.840s
user 17m6.560s
sys 1m33.040s
}}}
Compiling and linking all these `Setup.hs` files does add some noticeable
overhead.
If these patches get accepted, I'll start working on improving the UI.
--
Ticket URL: <http://hackage.haskell.org/trac/hackage/ticket/447#comment:8>
Hackage <http://haskell.org/cabal/>
Hackage: Cabal and related projects
More information about the cabal-devel
mailing list