Hacker News new | ask | show | jobs
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.

1 comments

I think the funny thing about this discussion is everyone agrees with the sentiment of "9 women can't make a baby in one month" but somehow the intuition is forgotten when it comes to compilers and parsers and etc. Like if human engineers with human brains can't parallelize program construction, what hope do computers have?

Ultimately this, like many things, boils down to P=?NP (search/optimization is NP hard).