#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 _______________________________________________ cabal-devel mailing list cabal-devel@haskell.org http://www.haskell.org/mailman/listinfo/cabal-devel