5 ms·
how come hundred cores is only speedup of ~6?
by Iwan-Zotow 6y ago
how come hundred cores is only speedup of ~6?
- IshKebab 6y agoOn large C++ projects there are usually a ton of steps that can't be perfectly parallelized. Linking is usually single threaded, you might have dependencies that are way less than 100 CPP files. CMake is single threaded and very slow. Lots of projects have custom Python scripts for code generation or whatnot - all single threaded.
- gonzo41 6y agoYou can only say the alphabet one way, starting from A and ending in Z. Some tasks can't be parallelized. I expect a lot of those cores wait for critical paths to execute.
- fulafel 6y agoAmdahl's law.
- Syzygies 6y agoNot a law. Haskell can be much closer to linear, performance to cores. It starts banging its head on the last core; the little bit of other work the computer does seems to throw off Haskell's gait. (This is subjective first-hand experience.)
- logicchains 6y agoLinking in particular. At one stage, due to enabling LTO, our release build alone took over 20 minutes just to link. And linking cannot easily be parallelised (if at all? I'm not familiar with what the state of the art in linkers is).
- uluyol 6y agoI believe that ThinLTO does most of its work in parallel and provides most of the benefit of LTO.