A couple weeks back, I tweeted the following:
Turns out a Raspberry Pi now is about 6 times as fast as a SPARCstation 20 was 20 years ago. And a Pi 2 is more like 15 times as fast.
I was a little low in my numbers, too — they’re more like 7 times and 16 times to 41 times as fast — since I was going from memory!
Here’s how I came up with that.
The BYTE UNIX Benchmark
The standard benchmark for UNIX systems back in the day was the BYTE UNIX Benchmark, a set of benchmarks originally developed at a university and fleshed out substantially by BYTE Magazine so they could evaluate the new servers and workstations that were coming to market.
Even though BYTE itself is no more (RIP) the benchmark lives on: The most recent version was posted on Google Code and had some additional portability and enhancement work done. These days, the most up-to-date version is on GitHub.
What’s useful about this benchmark is that it’s scaled, and UNIX hasn’t changed all that much in itself, so it’s still moderately useful as a way to compare systems with each other.
I’d recently made an offhand comment that the Raspberry Pi, despite feeling “underpowered” by today’s standards, was actually extremely powerful — and that it put a decent workstation from the mid-1990s to shame, the kind of system we tended to be jealous of as college students.
What was a SPARCstation 20?
Back then, Sun was the biggest UNIX workstation vendor, primarily because both their hardware and baseline operating system were good and they offered a ton of flexibility in their product line.
In 1994, Sun introduced a new lineup of SPARCstation systems that had dramatically improved performance compared to their previous models — the original of which was so iconic that it defined the “pizza box” form factor for desktop workstations — and the SPARCstation 20 was one of their flagships.
Here are some specs for the Sun SPARCstation 20 model 61, which shipped in June 1994:
- One 60 MHz SuperSPARC CPU
- 1 MB of cache
- 32MB RAM (expandable to 512MB)
- 20 MB/second SCSI-2
- 1152 by 900 8-bit graphics
In 1994, this was quite a substantial system, and it cost $16,195 in its minimum configuration. (That’s $25,580 today!) And if you used one, it felt like it: This thing was wicked fast.
This was also the last system for which the BYTE benchmark was re-indexed, defining this SPARCstation 20 to have a score of 10.0.
The Benchmarks
Actually running the benchmarks under Raspbian Jessie on my Raspberry Pi and Raspberry Pi 2 was trivial, literally just a matter of cloning the git repository and running the script.
Here are the results. Note that the Raspberry Pi 2 has two sets of results, because the BYTE UNIX Benchmark runs once to get “single-CPU” performance numbers and another time to get “multi-CPU” numbers. Its single-CPU numbers are really more like “single process” numbers, however, since the other three cores aren’t actually disabled while the benchmark is run.
System Benchmarks Index Values | SS20-61 Result | SS20-61 Index | RPi Result | RPi Index | RPi2x1 Result | RPi2x1 Index | RPi2x4 Result | RPi2x4 Index |
---|---|---|---|---|---|---|---|---|
Dhrystone 2 using register variables | 16700.0 | 10.0 | 1647374.0 | 141.2 | 3000237.2 | 257.1 | 1948737.7 | 1023.9 |
Double-Precision Whetstone | 55.0 | 10.0 | 239.6 | 43.6 | 435.3 | 79.1 | 1729.8 | 314.5 |
Execl Throughput | 43.0 | 10.0 | 167.7 | 39.0 | 321.5 | 74.8 | 1210.6 | 281.5 |
File Copy 1024 bufsize 2000 maxblocks | 3960.0 | 10.0 | 30363.8 | 76.7 | 70026.8 | 176.8 | 110940.6 | 280.2 |
File Copy 256 bufsize 500 maxblocks | 1655.0 | 10.0 | 9473.6 | 57.2 | 20353.5 | 123.0 | 31384.0 | 189.6 |
File Copy 4096 bufsize 8000 maxblocks | 5800.0 | 10.0 | 76219.4 | 131.4 | 186926.9 | 322.3 | 296346.9 | 510.9 |
Pipe Throughput | 12440.0 | 10.0 | 118393.6 | 95.2 | 181562.5 | 146.0 | 713070.2 | 573.2 |
Pipe-based Context Switching | 4000.0 | 10.0 | 14539.1 | 36.3 | 33809.8 | 84.5 | 126241.1 | 315.6 |
Process Creation | 126.0 | 10.0 | 434.6 | 34.5 | 1190.8 | 94.5 | 2572.9 | 204.2 |
Shell Scripts (1 concurrent) | 42.4 | 10.0 | 354.5 | 83.6 | 1087.0 | 256.4 | 2395.0 | 564.9 |
Shell Scripts (8 concurrent) | 6.0 | 10.0 | 44.9 | 74.8 | 301.0 | 501.7 | 317.0 | 528.3 |
System Call Overhead | 15000.0 | 10.0 | 276169.1 | 184.1 | 399939.7 | 266.6 | 1545514.4 | 1030.3 |
System Benchmarks Index Score | 10.0 | 71.9 | 165.6 | 417.4 |
What does this tell us?
A lot can happen in 20 years. Even when it comes to things like I/O throughput, where the Raspberry Pi really falls down compared to other systems — because it attaches to everything via USB — it’s still way faster than a mid-1990s Sun that we all thought was extremely fast.
In particular, according to the indexes, a Raspberry Pi is about seven times as fast as a baseline SPARCstation 20 model 61 — and has substantially more RAM and storage, too. And the Raspberry Pi 2 is sixteen times as fast at single-threaded tasks, and on tasks where all cores can be put to use it’s forty one times faster.
Ideally, this would also mean that even a Raspberry Pi Zero should feel exceptionally fast. However, our software appetite has grown even faster than our appetite for fast hardware, and the feel of systems compared like this can demonstrate that well.
What’s next?
Well, I just got a DragonBoard 410c, which is a quad-core 64-bit ARM board using a Qualcomm CPU, and which doesn’t have any of the major design issues of the Raspberry Pi…