CPU Comparison
Apr. 30th, 2016 01:31 pmlingo
, written in Go, on a number of computers. This measures basically single-thread performance, presumably with some emphasis on memory access, as the interpreter does a lot of pointer chasing. Mainly I wanted to compare my newly upgraded home server mellum
with others.The first four of the computers listed in the table are my own, the first three at home, the fourth an external rented server. All others are my employer's and are operated by our group.
Host | evals/s | Factor | CPU(s) | Cores | Clock/Ghz | OS |
---|---|---|---|---|---|---|
mellum | 3505715 | 1.00 | E3-1220 v3 | 4 | 3.1 | FreeBSD 10.3 |
naibel | 497192 | 7.05 | T40E APU | 2 | 1 | FreeBSD 10.3 |
wrixum | 1659191 | 2.11 | Core 2 Duo | 2 | 2.4 | OS X 10.11.4 |
holt | 1849007 | 1.90 | Opteron 1385 | 4 | 2.7 | Debian Jessie |
Brunei | 1375674 | 2.55 | E5-2620 v3 | 12 | 2.4 | Debian Jessie |
Island | 1548087 | 2.26 | X5650 | 12 | 2.67 | Debian Jessie |
Bermuda | 2139985 | 1.64 | i5-2400 | 4 | 3.1 | Debian Jessie |
qcm05 | 1622777 | 2.16 | E5-2690 v2 | 20 | 3 | Debian Jessie |
qcm06 | 1355449 | 2.59 | E5-2690 v3 | 24 | 2.6 | Debian Jessie |
qcm07 | 1391523 | 2.52 | E5-2690 v3 | 24 | 2.6 | Debian Jessie |
qcw50 | 4166456 | 0.84 | i5-4590 | 4 | 3.3 | Debian Jessie |
dgm07 | 1473666 | 2.38 | X5650 | 12 | 2.7 | Debian Wheezy |
The listed number of cores is the total in the machine, without hyperthreading.
The program I ran is the interpreter
lingo
, commit 5aa9fa8cd136efd05e0adcbb9474f0aa6fe1fe64, built with the current Go 1.6.2 – to be precise, a run of make benchmark10
in the lingo directory, which factorises the number 100000000001 with the (rather naïvely implemented) Lisp program factor.lisp.The number at "evals/s" states how many Lisp expressions have been evaluated per second. I have used the best number of a few runs each (at least two). Apart from qcm05 and qcm07 the machines were very lightly loaded, such that each had a "free" CPU core.
I am a bit surprised that, apart from the workstation qcw50, my computer with a relatively cheap and nearly three-year-old CPU comes out ahead of nearly everything I could get my hands on, and not only the old ones (Island, our workgroup server, and Bermuda, my workstation), but also the newer ones. Now that computer has only one CPU and only four cores in total; especially the qcm0[5-7], meant for serious number crunching, have much more. Still amazing.
But I am even more surprised that my oldish MacBook Pro
wrixum
(13", mid-2010) keeps itself up so bravely. It has not only a CPU design from nearly eight years ago, but was also the slowest of the product line when I bought it.Update: an additional result from rbarclay (see comments)
Update: More results are welcome! If you want to build from source, look into the comments for detailed instructions. If you want to use a pre-built binary for FreeBSD, Linux, or OS X on the amd64 architecture, download the appropriate one of the following files, unpack it, change into the lingo directory, and run <code>make benchmark10</code>. See the output for the "evals/s" value.
Source | evals/s | Factor | CPU(s) | Cores | Clock/GHz | OS |
rbarclay | 2850442 | 1.23 | FX-8350 | 8 | 4 | Debian Jessie |