I can see that stack test
defaults to parallel builds. But that refers to parallelism between different test-suites, right? In the case of both builds and tests (with test-framework or tasty) there's the issue of "inner loop" parallelism within each build or test target. I suppose we can't parallelize the tests until we have some way for the build-tool to know it's a tasty/test-framework suite, not just exitcode-stdio-1.0
, but that still leaves build-parallelism. Does Stack currently pass -j
to GHC?
I haven't seen comprehensive benchmark numbers, but a small value like -j2
or -j4
for GHC offers some benefit. The current implementation is not scalable however (for example, I haven't seen anything good come of -j32
).
Nested parallelism of course raises the issue of N * N
jobs being spawned for N
cores. As long as its quadratic oversubscription and not exponential, I think this is not that big a problem for CPU usage, but it very often can create problems with memory usage (or hitting ulimits / max # of processes).
There are several related cabal issues, but it's a little hard to tell the current status with them spanning a lot of time and various merged and unmerged pull requests:
-j
should build package components in parallel haskell/cabal#2623RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4