|
|
|
|
|
by nonameiguess
567 days ago
|
|
Make isn't a compiler. It's a task graph engine and it can run targets in parallel if they don't depend on each other. Many of those targets will be calls to a compiler that won't themselves be parallel. If you're building 8 shared object library files and 6 executables, which share code but don't otherwise depend on each other, then run tests after the build, in addition to preprocesor macro expansions and what-not, there's a lot that can be run in parallel even if no calls to the compiler itself can be. GNU does have a separate project to parallelize gcc: https://gcc.gnu.org/wiki/ParallelGcc. The Wiki has limitations, challenges, and benchmarks. It can speed things up a tiny bit, but barely, and benefits seem to vanish after 4 threads. |
|
Ultimately this, like many things, boils down to P=?NP (search/optimization is NP hard).