40 Years of Microprocessor Trend Data (2015)
karlrupp.net
karlrupp.net
42 Years of Microprocessor Trend Data
> https://www.karlrupp.net/2018/02/42-years-of-microprocessor-...
from 2018-02.
The same data was used by other students of my advisor to create the Cpu database which has some more data like cache sizes and FO4.
From the latest data (https://www.karlrupp.net/2018/02/42-years-of-microprocessor-...) you can definitely see that single-threaded performance is still increasing but not at the exponential clip it was. The inflection point for that is around the mid-2000s. It is hard to eyeball because the chart is logarithmic but the rate of increase looks to be sub-exponential for the past decade or so.
MHz and Watts have clearly levelled off.
Number of logical cores looks to be on an exponential path so clearly we need to be tracking multi-threaded performance gains. Unlike your work this only needs to be backdated to the mid-2000s – multi-core ramps up when single-threaded starts ramping down – so it should be far easier.
Pretty much all applications take advantage of multi-threading now, be it multi-processing or multi-threading. Erlang is the only language I know of that has the multi-threaded paradigm baked into its core. Ruby has had Fibers since 2.2 so they are very much a tacked on idea. Perhaps what we need is to retrofit them to C, come up with an abstract machine model and language primitives that fits our multi-core world. We could call it C[].
Clearly some curves have kind of flat lined but aside from the power consumption one which could logically go down and definitely has in terms of power/transistor ratio, the other ones are not going down any time soon for sure like the graphs suggest.
Anecdotally my several years old iMac [0] has 4-cores/8-threads and I already only notice more threads when parallel-compiling (compared to my 2C/4T i7-Skylake laptop).
[0] https://everymac.com/systems/apple/imac/specs/imac-core-i7-3...
For what? A web server (the most common application around) can use one for each simultaneous connection. They don't even have to be on the same box. A database server is limited on IO, but can use many CPU cores to speed-up things. A component on the latest "productivity" suite can probably use only one, but should require an entire one anyway, and your usual Win10 desktop has plenty of stupid stuff to run by its own, while your usual Linux desktop was already idling 90% of the time a decade ago.
It is always a matter of what are you doing. If your task is inherently serial, do you need it done only once?
Also for the billions of computers around the most common application is probably a web browser, not a web server.