On Fri, Jul 8, 2016 at 11:53 AM, Erik Rantapaa <[email protected]> wrote:
> Hi all, > > I've been building a large number of packages with a single `stack > install` command, e.g. something like: > > stack install --resolver ... --keep-going $(cat all-packages) > > On a 8-core / 16 GB box I've noticed that the worker threads are not > always kept busy. The overall %-idle time is at least 20%. > > > So I'm wondering... > > - Is there anything I can do on the command line to improve CPU > utilization? > You can definitely increase CPU utilization by specifying "-jN" options for GHC (e.g. "-j2"). Unfortunately, in my experience it usually doesn't help as much as I'd hope with overall build time. One issue is that it's possible for it to interact poorly with package-level parallelism. For example, if stack is building 5 packages with "-j5", suddenly there's potentially 25 processes each trying to use 100% of a core. > > - Where can I find the code that does the job scheduling? I would like to > modify how package builds are prioritized to improve throughput. > Scheduling is done here: https://github.com/commercialhaskell/stack/blob/master/src/Control/Concurrent/Execute.hs Converting the build tasks to actions for scheduling is here: https://github.com/commercialhaskell/stack/blob/4304711d91f41a137931502ac4b1d00b3a4bc842/src/Stack/Build/Execute.hs#L573 Thanks, > Erik > > -- > You received this message because you are subscribed to the Google Groups > "haskell-stack" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > To post to this group, send email to [email protected]. > To view this discussion on the web visit > https://groups.google.com/d/msgid/haskell-stack/329a3117-b2ff-411c-954d-156001b622d6%40googlegroups.com > <https://groups.google.com/d/msgid/haskell-stack/329a3117-b2ff-411c-954d-156001b622d6%40googlegroups.com?utm_medium=email&utm_source=footer> > . > For more options, visit https://groups.google.com/d/optout. > -- You received this message because you are subscribed to the Google Groups "haskell-stack" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/haskell-stack/CAEYHaY6NDusRwwmDRwnKMJUgEZU2YoVcLhTmr7K-8hAZXwVrOg%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.
