I think it's that the measure of modern CPU performance- multithreaded performance is worthless and has been worthless forever.
Most software engineers don't care to write multithreaded programs, as evidenced by the 2 most popular languages - Js and Python having very little support for it.
And it's no wonder, even when engineers do know how to write such code, most IRL problems outside of benchmarks don't really yield themselves to multithreading, and due to the parallizable part being limited, IRL gains are limited.
The only performance that actually matters is single thread performance. I think users realized this and with manufacturing technology getting more expensive, companies are no longer keen on selling 16 core machines (of which the end user will likely never use more than 2-3 cores) just so they can win benchmark bragging rights.
> The only performance that actually matters is single thread performance. I think users realized this and with manufacturing technology getting more expensive, companies are no longer keen on selling 16 core machines (of which the end user will likely never use more than 2-3 cores) just so they can win benchmark bragging rights.
How can you state something like this in all seriousness? One of the most used software application has to be the browser, and right now firefox runs 107 threads on my machine with 3 tabs open. gnome-shell runs 22 threads, and all I'm doing is reading HN. It's 2025 and multicore matters.
Those threads don't necessarily exist for performance reasons - there can be many reasons one starts a thread from processing UI events, to IO completion etc. I very much doubt Firefox has an easy time saturating your CPU with work outside of benchmarks.
If Firefox smears its CPU usage over multiple threads, that leaves more single-threaded performance on the table for other apps that may need it. So there could still be an effect on overall system performance.
Well yeah - what CPU bound task do you need to be performant? Beyond many tabs - which is embarrassingly parallel - it's all either GPU, network or memory bound.
Firefox failing to saturate your CPU is a win-state.
>multithreaded performance is worthless and has been worthless forever.
I have a very opposite opinion; single threaded performance only matters to a point where any given task it's doing isn't unusable. Multithreaded performance is crucial from keeping the system from grinding to a halt because users always have multiple applications open at the same time. Five browser windows with 4-12 tabs on each, on three different browsers, 2-4 Word instances, some electron(equivalent) comms app, is much less unusual than I'd like it to be. I have used laptops with only two cores and it gave a new meaning to slow when you tried doing absolutely anything other than waiting for your one application to do something. Only having one application open at a time was somewhat useable.
> The only performance that actually matters is single thread performance.
Strong disagree, particularly on laptops.
Having some firefox thread compile/interpret/run some javascript 500 microseconds faster is not going to change my life very much.
Having four extra cores definitely will: it means i can keep more stuff open at the same time.
The pain is real, particularly on laptops: i've been searching for laptops with a high-end many-core cpu but without a dedicated gpu for years, and still haven't found anything decent.
I do run many virtual machines, containers, databases and stuff. The most "graphic-intensive" thing i run is the browser. Otherwise i spend most of my time in terminals and emacs.
The fact that multithreaded performance is worthless for you does not prove that this is true for most computer users.
During the last 20 years, i.e. during the time interval when my computers have been multi-core, their multithreaded performance has been much more important for professional uses than the single-threaded performance.
The performance with few active threads is mainly important for gamers and for the professional users who are forced by incompetent managers to use expensive proprietary applications that are licensed to be run only on a small number of cores (because the incompetent managers simultaneously avoid cheaper alternatives while not being willing to pay the license for using more CPU cores).
A decent single-threaded performance is necessary, because otherwise opening Web pages bloated by JS can feel too slow.
However, if the single-threaded performance varies by +/- 50% I do not care much. For most things where single-threaded performance matters, any reasonably recent CPU is able to do instantaneously what I am interested in.
On the other hand, where the execution time is determined strictly by the multithreaded performance, i.e. at compiling software projects or at running various engineering EDA/CAD applications, every percent of extra multithreaded performance may shorten the time until the results are ready, saving from minutes to hours or even days.
Lots of problems can be nicely parallelized, but the cost of doing so usually isn't worth it, simply because the entity writing the software isn't the entity running it, so the software vendor can just say "get a better PC, I don't care". There was a period when having high requirements was a badge of honor for video games. When a company needs to pay for the computational power, suddenly all the code becomes multithreaded.
Yes but look at the chart in the article. Both multi-threaded and single-threaded performance is getting slower on laptops. With desktops, multi-threaded is getting slower and single-threaded is staying the same.
Superscalarity is largely pointless yes, given that memory access between threads is almost always a pain, so two of them rarely process the same data and can't take advantage of using a single core's cache at the same time. It doesn't even make much sense in concept.
But multicore performance does matter significantly unless you're on a microcontroller running only one process on your entire machine. Just Chrome launches a quarter million processes by itself.
Most software engineers don't care to write multithreaded programs, as evidenced by the 2 most popular languages - Js and Python having very little support for it.
And it's no wonder, even when engineers do know how to write such code, most IRL problems outside of benchmarks don't really yield themselves to multithreading, and due to the parallizable part being limited, IRL gains are limited.
The only performance that actually matters is single thread performance. I think users realized this and with manufacturing technology getting more expensive, companies are no longer keen on selling 16 core machines (of which the end user will likely never use more than 2-3 cores) just so they can win benchmark bragging rights.