
What, if anything, stands in the way of parallelizing Cabal installs, make -j style? Louis Wasserman wasserman.louis@gmail.com http://profiles.google.com/wasserman.louis

wasserman.louis:
What, if anything, stands in the way of parallelizing Cabal installs, make -j style?
Parallelizing ghc --make http://vimeo.com/6572966

On 4 June 2010 00:05, Don Stewart
wasserman.louis:
What, if anything, stands in the way of parallelizing Cabal installs, make -j style?
Parallelizing ghc --make
Unless Louis meant what's stopping cabal-install from installing dependancies in parallel instead of serial? In which case; nothing?

chrisdone:
On 4 June 2010 00:05, Don Stewart
wrote: wasserman.louis:
What, if anything, stands in the way of parallelizing Cabal installs, make -j style?
Parallelizing ghc --make
Unless Louis meant what's stopping cabal-install from installing dependancies in parallel instead of serial? In which case; nothing?
Oh, sorry, dependencies (package level parallelism) vs modules (ghc --make level parallelism) -- don

Heh, I'm interested in both, but I'm feeling like I needed a new project,
and I thought this might make a good one =)
Louis Wasserman
wasserman.louis@gmail.com
http://profiles.google.com/wasserman.louis
On Thu, Jun 3, 2010 at 5:42 PM, Don Stewart
chrisdone:
On 4 June 2010 00:05, Don Stewart
wrote: wasserman.louis:
What, if anything, stands in the way of parallelizing Cabal installs, make -j style?
Parallelizing ghc --make
Unless Louis meant what's stopping cabal-install from installing dependancies in parallel instead of serial? In which case; nothing?
Oh, sorry, dependencies (package level parallelism) vs modules (ghc --make level parallelism)
-- don

Excerpts from Christopher Done's message of Fri Jun 04 00:39:23 +0200 2010:
On 4 June 2010 00:05, Don Stewart
wrote: wasserman.louis:
What, if anything, stands in the way of parallelizing Cabal installs, make -j style?
Parallelizing ghc --make
Unless Louis meant what's stopping cabal-install from installing dependancies in parallel instead of serial? In which case; nothing?
I think cabal-install compiles Setup without starting ghc or such (I may be wrong). This would be fixable. If you want to volunteer try hack-nix. It's based on the Nix distribution system which provides this feature natively. You can even ask others computers to help building dependencies quite easily. Downside: At the moment it will pull all depndencies (including kernel headers and glibc..) if you install it on a common linux system. Marc Weber

On Thu, Jun 3, 2010 at 3:05 PM, Don Stewart
wasserman.louis:
What, if anything, stands in the way of parallelizing Cabal installs, make -j style?
Parallelizing ghc --make
Something I wondered from watching that talk, rather than trying to make ghc run concurrently internally, can we just have --make, when faced with multiple possibilities, pick the first one without a 'ModuleName.working' file, create such a working file, and then go to? Then you can run 'ghc --make X.hs &; ghc --make X.hs &; ...'. In fact, isn't that what make -j already does? I could try it with the old style 'ghc -M' and pure makefile, but it turns out to be a lot of work to figure out what packages to include and tangle out the right .o files and whatnot, work that --make does for me.

Hmmm. Now that I've had a chance to rewatch the video, I am enlightened.
Nevertheless, I will confess that I wouldn't mind the idea of just doing an
external parallelism wrapper, running multiple sessions of GHC rather than
making GHC internally parallel. Hrrrrm.
Louis Wasserman
wasserman.louis@gmail.com
http://profiles.google.com/wasserman.louis
On Thu, Jun 3, 2010 at 11:57 PM, Evan Laforge
Something I wondered from watching that talk, rather than trying to make ghc run concurrently internally, can we just have --make, when faced with multiple possibilities, pick the first one without a 'ModuleName.working' file, create such a working file, and then go to?
Then you can run 'ghc --make X.hs &; ghc --make X.hs &; ...'.
In fact, isn't that what make -j already does? I could try it with the old style 'ghc -M' and pure makefile, but it turns out to be a lot of work to figure out what packages to include and tangle out the right .o files and whatnot, work that --make does for me.
participants (5)
-
Christopher Done
-
Don Stewart
-
Evan Laforge
-
Louis Wasserman
-
Marc Weber