Estimating the performance of a modern computer is a difficult task and given results are often deceiving: not only clock speed matters; the modern CPUs have multiple cores, some sort of parallelism implemented in each core with sophisticated pipelines, many levels of built-in caches and use all sort of tricks to be faster, as: branch prediction, speculative and out-of-order execution etc.. Another key factor to consider is memory access, and sometimes also the network is important.
Performances can be very different for different applications; to evaluate a computer for your usage you have to test with something enought similar to your application.
In the nineties Alex Bielajew proposed a simple benchmark for EGS4, a Monte Carlo program simulating the transport of radiation in matter. This program was very popular in the nineties among the medical physics groups, and some enhanced versions of this program are in use also today, mainly for simulation and design of medical equipments (EGS5, EGSnrc). The original EGS4 is no more used and the Bielajew benchmark has been forgotten; nevertheless I continued to run that benchmark program on every computer I used from the eighties until 2020.
This benchmark program doesn't have a graphical interface, and doesn't use the parallelism of modern multi-core, multi-threads systems, doesn't use the network or a massive amount of data; it is something similar to many of the programs I run; it was an enought good test for me and can give an idea of the evolution of computer power in all these years.
The following picture summarizes the results. The speed values are relative to the time needed to run the benchmark on a popular mini computer of the old times: the Vax-11/780 (about five hours). The VAX-11/780, commercialized by Digital Equipment in 1977, was one of the first mini-computers available, it had a great success, for its affordable price and good performances; it had a 5MHz clock, and some megabytes of RAM.
The first green points on the left are the
Microvax
minicomputers I used around 1990.
I had a Microvax-II in the eighties that had about
the same performance of the Vax-11/780 (not shown in this plot).
The IBM RISC workstations of the nineties (red dots) had a bit better
performances, but the Dec-alpha workstations
(the little blue dots around 1997) where the faster choiche I had in that period.
Intel CPU became faster in the new century with the
Pentium, with a computation speed increased by thousands, compared
with the mini computer of ten years before.
The blue circles between 2005 and 2010 are some workstation
with Intel Xeon CPU. These are not much faster than
common PC of the same time; Xeon, intended for servers, with
bigger cache and more cores, are more suited for serving many
users and programs, than for running this little benchmark, which is more
sensitive to clock speed.
The red triangles are Xeon CPU used for the ENEA
CRESCO
supercomputer.
In the old times of the CRAY systems, supercomputers had special CPU
built for the specific supercomputer, with the best technologies available, other
systems had cheaper and much less powerful CPU. But today most supercomputer
are a grid of hundreds or thousands of commercial CPU, with many cores,
connected by a hight performance network: to exploit their power you have
to separate your computation into independent parts, to be executed
on the different CPU at the same time, in parallel.
Not all the problems are suited for parallelization and
programming a parallel computer is more an art than an exact science:
you have to minimize the data transfer between the CPU, accounting for
memory access time, the cache sizes of the specific system and,
as in CRESCO, you have to consider that CPU are connected by
a network shared among many running programs.
For a simple program, which doesn't use parallelization, a simple PC
is a better choice, much cheaper, easy to manage and faster...
this was not understood by many of my colleagues...
The yearly increase of CPU speed was greater before 2005: the Moore law,
(more an advertising slogan than a real law), telling that the
speed of CPU was doubling each year, couldn't cope with thermal
problem and current leakage, so maximum clock speed settled a bit below 4 GHz,
and performance increase for this benchmark flattened; but we still have
an increase in recent years due to better CPU design.
The green triangles at the top are the PC and the notebook
I bought in 2020, when retired.
An interesting point is the pink dot labeled "ARM" at the bottom right:
this is my old cellphone, an Huawey P6 II Pro, with a Kirin 620 ARM CPU;
it rates 460 in this performance scale; a supercomputer
of the eighties could rate between 20 and 50, but had no graphical
capabilities, no wifi, no bluethoot and much less memory.
Today everyone has in his pocket a computer with a computing performance ten or twenty times that of the more powerful million-dollar supercomputers of the eighties. Most of this power is used to operate a graphical interface of extreme complexity, which allow us to send photos of our pet with only some clicks.
The following image is a log-scale plot of the same data; the fast increase in performance in the nineties and the nearly linear increase in performance after 2005 is more visible.
All the data of the benchmark are shown in the table below, my data are not uniform, different compilers and operating system can give slightly different results, and some details on computers and compilers used has been forgotten and are not reported in the table.
The first column is the computer nickname, then we have the computer or CPU type; the operating system and compiler (Debian, Centos, Suse are all Linux systems); clock speed; year and the performance, relative to the Vax-11/780 (18510 sec., about five hours).
Nickname | Computer or CPU | System and compiler | Clock (MHz) | Year | Relative Speed |
---|---|---|---|---|---|
ebo421 | Microvax II 630 | VAX-VMS | 5 | 1985 | 1 |
ebomv1 | Microvax 3100/80 | VAX-VMS | 50 | 1993 | 8 |
astbo4 | Microvax 4000/90A | VAX-VMS | 30 | 1991 | 29 |
axpbo6 | DEC alpha 21064a | VAX-VMS | 200 | 1993 | 57 |
axpbo6 | DEC alpha 21064a | DU 4.0A | 200 | 1993 | 65 |
eboal1 | DEC alpha 3000/300 | VAX-VMS | 150 | 1993 | 32 |
eboal1 | DEC alpha 3000/300 | DU 4.0A | 150 | 1993 | 38 |
eboals | DEC alpha 21164 | DU 4.0B | 300 | 1995 | 155 |
maros | DEC alpha 21164/400 | DU 4.0D | 400 | 1997 | 237 |
vega | DEC alpha 21164/433 | 433 | 1997 | 267 | |
graphlab | SGI octane MIPS R10000 | IRIX 6 | 195 | 1997 | 131 |
risc990 | IBM RISC 6000/990 | AIX | 60 | 1993 | 42 |
risc590 | IBM Risc 6000/595 | AIX | 135 | 1995 | 84 |
info251 | IBM R6000/260 power3 | AIX | 200 | 1998 | 116 |
lanlook | Intel 486 | Debian | 66 | 1992 | 4 |
bofi77A | Pentium Pro 200 | Linux | 200 | 1995 | 67 |
spike | Pentium Pro 200 | Debian | 200 | 1995 | 66 |
diaf3 | Intel Pentium 166 | Debian | 166 | 1996 | 41 |
diaf | Pentium II-266Mhz | Debian | 266 | 1997 | 94 |
bofi77B | Pentium II-300 | Linux | 300 | 1997 | 106 |
nessie | AMD K6-200 | Debian | 200 | 1997 | 50 |
bofi76 | AMD K6-3d-300 | Linux | 300 | 1998 | 70 |
alpc | Pentium II-350 | Linux | 350 | 1998 | 126 |
bofi77C | Pentium II-400 | Linux | 400 | 1998 | 144 |
hercules | Pentium II-400 | Linux | 400 | 1998 | 144 |
bofi79 | Pentium II-Xeon 450 | Linux | 450 | 1998 | 162 |
diaf-II | Pentium III-500 | Linux | 500 | 1999 | 178 |
diaf3-II | AMD Athlon | Suse 7.2 | 1330 | 2000 | 544 |
nica | AMD K7-800 Athlon | Linux | 800 | 2000 | 317 |
ebo530 | AMD K7-1.33 Athlon | Debian 2.2 | 1330 | 2000 | 487 |
ebots1 | Pentium 4 | Linux | 2000 | 2001 | 516 |
ebots2 | AMD Athlon XP 1600+ | Suse 8 | 1400 | 2001 | 577 |
monval02 | AMD Athlon XP 2000+ | Suse 8 | 1666 | 2002 | 666 |
eborsk6 | AMD Athlon XP 2000+ | Suse 8.1 | 1674 | 2002 | 685 |
shenron | Pentium IV | Debian 3.0 | 2200 | 2002 | 625 |
diaf-III | AMD Athlon XP Barton | Debian 3.0 g77 3.3.5 | 1837 | 2003 | 685 |
powerg5 | powerpc 970 | Mac OS-X darwin 8 | 2300 | 2003 | 636 |
asu | Asus V6V Intel Pentium M 740 | Ubuntu 6.06.1 g77 3.4.6 | 1730 | 2005 | 964 |
winter | HP Proliant ML530 GS Intel Xeon 5150 | Ubuntu 6.06 g77 3.4.6 | 1860 | 2006 | 1267 |
agile | AMD 64 X2 | Debian 4.0 g77 3.4.6 | 1400 | 2006 | 1371 |
fafnir | AMD Athlon 64 X2 5600+ | Debian 4.0 g77 3.4.6 | 2815 | 2006 | 1661 |
fafnir | AMD Athlon 64 X2 5600+ | Debian 8 gfortran 4.9.2 | 2800 | 2006 | 1574 |
cidm | HP Proliant M350 G5 Xeon 5420 | Ubuntu 8.04 g77 3.4.6 | 2500 | 2007 | 2050 |
cidm | HP Proliant M350 G5 Xeon 5420 | Ubuntu 8.04 gfortran 4.2.4 | 2500 | 2007 | 2100 |
main | AMD Phenom II X4 955 | Debian 5.0 gfortran 4.3.2 | 3200 | 2008 | 1990 |
main | AMD Phenom II X4 955 | Debian 8, gfortran 4.9.2 | 3200 | 2008 | 2061 |
soniv | Sony Vaio VPCF11M1E Intel i5-M520 | Ubuntu 10.04 gfortran 4.4.3 | 2400 | 2010 | 2682 |
toshi | Toshiba Portege R700 Intel I5-M560 | Debian 6 gfortran 4.4.5-8 | 2600 | 2010 | 2848 |
nos | HP proliant ML350 G6 Intel Xeon E5520 | Ubuntu 10.04 gfortran 4.4.3 | 2270 | 2009 | 2373 |
nos | HP proliant ML350 G6 Intel Xeon E5520 | Debian8 gfortran 4.9.2 | 2270 | 2009 | 2249 |
cresco 3 | AMD Opteron 6234 | Centos 6.3 gfortran 4.8.2 | 4799 | 2011 | 1595 |
cresco 4 | Intel Xeon E5-2665 | Centos 6.3 gfortran 4.8.2 | 4800 | 2012 | 2314 |
cresco 5 | Intel Xeon E5-2630 | Centos 6.4 gfortran | 2300 | 2012 | 3402 |
cresco 6 | Intel Xeon Platinum 8160 | Centos-7.3 gfortran 7.3.0 | 2100 | 2017 | 2560 |
acercons | Acer Travelmate P2510-M Intel Core i5-6200U | Debian 8 gfortran 4.9.2 | 2300 | 2015 | 3329 |
fuji | Intel Core i7-6700 | Debian 9 gfortran 6.3.0 | 3400 | 2016 | 4535 |
last | Intel Core i7-7700 | Debian 9 gfortran 6.3.0 | 3600 | 2017 | 4850 |
panglong | Intel Core i5-9400F | Debian 10 gfortran 8.3.0 | 2900 | 2019 | 5500 |
tianlong | Intel Core i3-8145U | Debian 10 gfortran 8.3.0 | 2100 | 2020 | 5140 |
huawey | Huawey CAM-L21 kirin 620 | Android 6 gfortran 8.2.0 | 1200 | 2018 | 460 |
For details on the EGS4 benchmark see: