AMD Lists Threadripper 3000 CPU with 32 Cores, Possible New Socket
tomshardware.com
tomshardware.com
Sure, if I'm compiling huge project from the scratch, every core will be loaded, but that's more suitable for CI machine.
For everyday development people usually use incremental compilation and in my experience it's few files. So for me something like 12 cores looks like a golden balance between single core performance and multi core performance (because usually those high-core processors come with low frequency).
Still, a distributed build and test system would be superior anyway.
Now, if you want more than 8 cores, single-thread performance is not a reason to use less than 16 cores (AMD @ 4.7 GHz) or 18 cores (Intel @ 4.8 GHz).
You may want to use less cores for cost reasons, but not for performance reasons.
We do not know yet the frequencies for the 24-core Threadripper to be launched next month.
If they would succeed to have a 4.8 GHz single-core turbo, then ST performance would not be the reason to use less than 24 cores.
I guess it's from experience, that when there's a bottleneck in my work and in many other areas I've seen it's down to lack of ram hitting VM.
Now lack of CPU is less crippling in a way, the CPU just divides n ways and things run proportionately slower. If paging happens, it can easily be far worse than lack of CPU as disk is so slow (ok, SSDs these days may ameliorate that; I've no experience there).
So why? Experience suggests lack of ram is more common than lack of cpu and the effect is worse. Of course the best thing to do is examine your system before you take anyone's advice, including mine.
As ever, it depends on one's needs, but most often that need is greater for memory. IME. YMMV. Measure first as always.
There are many, many useful tasks which are embarassingly parallel or nearly so. For those tasks, doubling the core count doubles the performance. Single core gains have stagnated, so a performance doubling is a huge win. There's no other way to just up and double performance for any class of problem.
And even outside those tasks, more cores means more simultaneous heterogeneous workload, which means deeper and richer information pipelines. If you're live editing audio or video, for example, your core count determines the number of plugins/tracks you can work with simultaneously - and it's not unusual to have hundreds of tracks and dozens of layered plugins.
That's not exactly true. The GPU equivalent of a CPU core is called a Streaming Multiprocessor (in NVIDIA language), and it's latest GPU, GTX 2080 has 72 of them.
Each of these SMs can run hundreds of threads, but they run the same code in lock-step.
A 6-core system is perfect. However, we end up buying 12, 14, 16 cores.
And to make it worse, we buy dual CPU's on the servers. The buyer has determined core count > *
Give me 8 cores and all the clockspeed I can get (for our workloads)
I'm not sure how easy it is to disable on Windows though.
Why aren't they being used? Even for single threaded languages you can spawn multiple processes.
Maybe it works out if the cost savings from being able to purchase fewer machines outweighs the rewrite and the risk of new concurrency bugs.
And web browsers eat a lot these days :-|
You have to be careful about how you write Makefiles - not using Makefiles in subdirectories, but writing non-recursive Makefiles. And you have to sometimes divide up large source files.
It's usually a good idea to do a test build with make -j1 and pipe the output through moreutils “ts” utility, then sort by which operation takes longest and try to break it up / parallelize it.
As a Julia dev, 32 cores would be great.
As many as you can afford.
The reasoning is that your code, when it's ready and in production, will run on machines with more cores than they had available last year. If your code can now face its future runtime environment, then you'll have fewer surprises later.
A second reason is that machines with many cores degrade more gracefully under high load. You may be compiling across a dozen cores, but you'll still be able to search Stack Overflow or answer Gmail.
You may also consider going for higher memory bandwidth. 8x8GB DIMMs is better than 2x32GB ones.
We might really be at the brink of no-compromise super high end workstation computing!
Gamers nexus does a pretty good job explaining it: https://youtu.be/tL1F-qliSUk
There are loads of videos on YouTube about how AMD 105tdp processors beat intel processors with a lot lower TDP
A Threadripper with a higher TDP limit (and better cooling) will be able to boost all core to same levels as single core, ideal for workstation workloads.
Some of that TDP is also spent on driving additional memory channels and PCIE 4.0 lanes. There were rumors of TR having 8 channels now. And judging from active cooling on X570 chipsets, PCIE 4.0 is hot.