2000 Nickels

An option for change.

A Cray for $35

Since the new Raspbian distribution has hardware accelerated floating point operations, I wanted to test how fast the Raspberry Pi can run. But what to use for a benchmark? Well, LINPACK is the historical choice for evaluating floating point performance. Sure, the Pi doesn’t come with a FORTRAN compiler, but there is a C version of the benchmark that I got to compile with a few minor changes.

Using the Raspbian Wheezy (2012-09-18) image, here are the results from linpack:

Rolled Double Precision Linpack

     norm. resid      resid           machep         x[0]-1        x[n-1]-1
       1.7        7.41628980e-14  2.22044605e-16 -1.49880108e-14 -1.89848137e-14
    times are reported for matrices of order   100
      dgefa      dgesl      total       kflops     unit      ratio
 times for array with leading dimension of  201
       0.02       0.00       0.02      34333       0.06       0.36
       0.01       0.00       0.01      68667       0.03       0.18
       0.01       0.00       0.01      68667       0.03       0.18
       0.02       0.00       0.02      40655       0.05       0.30
 times for array with leading dimension of 200
       0.02       0.00       0.02      34333       0.06       0.36
       0.02       0.00       0.02      34333       0.06       0.36
       0.01       0.00       0.01      68667       0.03       0.18
       0.02       0.00       0.02      42256       0.05       0.29
Rolled Double  Precision 40655 Kflops ; 1000 Reps 

So that works out to be 41 MFLOPS. Not bad for a 700 MHz processor. But what if we do enable overclocking with the following command:

sudo raspi-config

then, under the overclocking section, choose the Turbo option:

Turbo  1000MHz ARM, 500MHz core, 500MHz SDRAM, 6 overvolt

The turbo mode runs at 1000 MHz and gives the following results:

Rolled Double Precision Linpack

 norm. resid      resid           machep         x[0]-1        x[n-1]-1
   1.7        7.41628980e-14  2.22044605e-16 -1.49880108e-14 -1.89848137e-14
times are reported for matrices of order   100
  dgefa      dgesl      total       kflops     unit      ratio
 times for array with leading dimension of  201
   0.01       0.00       0.01      68667       0.03       0.18
   0.01       0.00       0.01      68667       0.03       0.18
   0.01       0.00       0.01      68667       0.03       0.18
   0.01       0.00       0.01      62709       0.03       0.20
 times for array with leading dimension of 200
   0.01       0.00       0.01      68667       0.03       0.18
   0.01       0.00       0.01      68667       0.03       0.18
   0.01       0.00       0.01      68667       0.03       0.18
   0.01       0.00       0.01      65149       0.03       0.19
Rolled Double  Precision 62709 Kflops ; 1000 Reps 

The overclocking improves the performance to 63 MFLOPS. To provide some comparison values, here are the comparison numbers from the Linpack Benchmark Report:

Year Computer MFLOPS
1988 CRAY Y-MP 74
2012 Raspberry Pi (Turbo mode) 63
1987 ETA 10-E 52
1986 NEC SX-2 46
1985 NEC SX-2 46
2012 Raspberry Pi (Stock) 41
1984 CRAY X-MP 21
1983 CRAY 1 12
1979 CRAY 1 3.4

So, the Raspberry Pi that I bought for $35 is the number-crunching equivalent of three Cray X-MP supercomputers. Not bad.