1. The single thread performance gap is very small (5-10% depending on application) or even non-existent in some cases.
2. Your computer runs more than one process at any given moment. The more cores, the more processes you can run without an impact on performance
3. That single core performance comes at the cost of efficiency and general power usage. Intel has had to clock their 14nm process very high to achieve that small lead in single thread performance.
Imagine you have a single core compilation process that takes two minutes that you must run 50 times a day. This can happen. Ten percent brings 12 seconds per compile or ten minutes a day. This might not sound great but it means you can get an extra five compiles done. You can also get increased likelihood that you can remember what you were working on. Therefore the marginal gain in single thread performance is well worth having in this use case. The expense of genuine Intel becomes worth it even if you don't have so many cores.
the compilation definitely has parallelism.
Both AMD and Intel are ridiculously fast! You can't really go wrong with either.
The code is all async by default and that is easy to load onto green threads.
This used to be implemented with callback hell, now it's Promises which is actually really cosy (and what Rust is adopting).
Random article I found on it: https://medium.com/better-programming/is-node-js-really-sing...
But it is also like 10 times faster than other compilers.
Who runs builds with a single core compilation process? Are we back in 1990?
You are hard-pressed to find a CPU with a single core nowadays, even in the cheapest of consumer segments. Why are you fabricating such an unrealistic case?
By the way, one of the biggest improvements in software performance in the past decade comes from link time optimisations during build (LTO), that's all done during linking and it takes FOREVER.
From anecdotal experience of the code I am on right now, relinking a few hundred megabytes of .o's takes less than 2 seconds with lld on my 6900k.
Depends how many targets you're building. If you have enough memory, you can link several libraries in parallel.
Linking is also IO-bound, and already a solved problem in the sense that there are already plenty of solutions that render linking to be a non-issue. It's far from a decent CPU benchmark.
Wanting an Intel over a Zen 1 for single threaded performance? Completely understandable.
But, this is a narrow-minded perspective to have. The future cannot possibly be that we magically invent an x86 core that can clock to 8GHz w/ practical power & cooling. One has to push forward in some incremental way. The answer is adding more parallel execution units. Sure, lots of software and techniques used today are not feasible to directly port over, but that doesn't mean it has to stay that way.
As a software developer, I feel it is my duty to help push the state of the art forward wherever possible. I have already begun working on projects that are designed around the concept of extremely high core counts becoming the norm. Having 32 logical threads sitting in your local workstation makes it possible to practically experiment with the lower bounds of what would be required in a larger production deployment.
There are types of software that we can consider building today that would have sounded absolutely insane just a few years ago. Cloud gaming is now a thing falling within practical reach. How many more x86 cores per instance would we need before we could start thinking about rendering 100% of client views server-side (i.e. eliminate most HTML/CSS/JS) or deprecating the usefulness of discrete GPUs altogether? Pulling everything into a single memory domain could do wonders for breaking down the ages-old GPU/CPU functionality silos. One way to do it all with one instruction set and a single cache-coherent memory architecture...
Of course if price is no object then the above doesn't apply.
Can you give some examples of CPU intensive apps that are not multi threaded in 2020?
Honestly my biggest problem right now is that I don't even know if there's anything I can buy/upgrade to speed it up. I don't know how to determine what the bottleneck is, so to speak.