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.

Reply via email to