Speed vs Throughput
23rd June 2019
There are two metrics to determine a microprocessor’s performance, Speed of Execution and Throughput. With new consumer CPUs up to 16 cores soon becoming available on the market – like the Ryzen 3950X – most consumers might find it hard to determined exactly how many cores they will need in their personal machines. The simple answer lies of course in the type of workloads you use your computer for, understanding the difference between speed and throughput might help you determine what you should upgrade to.
The performance needs for different form factor computers might be described as such:
Personal Mobile Devices: Cost, energy, media performance, responsiveness
Desktop PC: Price-performance, graphics performance
Server: Throughput, availability, scalability, energy
Clusters: Price-performance, throughput, energy, proportionality (how much space they take up)
IOT & Embedded: Price, energy, domain-specific performance
As you can see, throughput is a determinant factor for things like Servers. Someone like Amazon will put greater value in how many transactions per minute or how many pages it can serve rather than how fast these operations are – and as a consequence they will optimize their software to mitigate any losses in speed by reducing the size of pages, or using video compression algorithms for their Prime service.
For a personal computer however (unless we’re talking about a workstation) throughput shouldn’t be your primary focus when building your system. For most users, the graphics performance of a personal computer should be prioritized over how many CPU cores it has available. There is of course a minimum recommendation. Mine would be at least 4 cores and 8 threads at the very minimum, with 6 cores and 12 threads being the best price/performance ratio currently.
If you are playing a sports videogame that doesn’t require you to focus on story telling or characters or even aiming, you might want to have a youtube video playing in the background while you game. You won’t be doing that with just 4 threads, as your system will struggle to allocate resources to both tasks. So a CPU like the upcoming i3-9350KF (4C / 4T4.0 GHz4.6 GHz8 MB2400 91W) at $173 is an absolute no-no when it comes to building a desktop PC. It’s terrible price/performance and with just 4 threads you’ll be struggling to do multi-tasking with anything but simple apps.
At the other end of the spectrum, the 3950X is also terrible price/performance if – like most people – your PC usage revolves around playing games, consuming media, and using common productivity tasks like Photoshop or Blender. Even if you are multi-tasking (rendering a video in Premiere while playing a game and having a youtube video playing in the background) you will still be fine with just an 8 core CPU (as long as it’s Hyperthreaded/SMT – which means the upcoming 9th gen I5s and I7s might not be enough for your computing needs seeing as they are not hyperthreaded).
Of course multithreading goes beyond just watching youtube videos while you game.
The implementation of multithreading that you are probably most familiar with is called simultaneous multithreading (SMT). This is a variation of fine-grained multithreading that naturally occurs when fine-grained multithreading is implemented on a multiple-issue, dynamically scheduled processor.
SMT (which is available in all third-gen Ryzens but only on a few 9th gen Core CPUs) uses thread-level parallelism to hide long-latency events, thereby increasing the usage of the functional units. With SMT register renaming and dynamic scheduling allow multiple instructions from independent threads to be executed without “worrying” about dependencies between them. Dynamic scheduling will resolve those dependencies, rather than having the whole system stall while it waits for each one to finish.
My personal opinion regarding CPUs is that many-core CPUs (12 core+) are unnecessary for the vast majority of consumers unless two key requirements are met:
- The CPU’s single-threaded performance speed isn’t hindered by the extra throughput. After all, what’s the point of having extra throughput if the data you need arrives too late to be useful? (i.e. FPS in competitive games).
- The price jump from 8 cores to 12 cores isn’t radical.
This leads to the upcoming 12 core SMT Ryzen 3900X. At $500 it’s too much of a price jump compared to the 8 core SMT Ryzen 3700X ($329) to make sense for the vast majority of consumers. So even though it likely passes the first requirement (speed), the value proposition just isn’t there.
There’s a lot more to be said on the topic of throughput (especially regarding GPUs and other accelerators) so I’ll be coming back to this topic in the future. A comparison of the 3900X vs the 3700X is definitely something I’ll be doing eventually. Be sure to follow me on social media so you don’t miss future articles.Youtube | Twitter | Instagram | Twitch