Description
This supercomputer benchmark was first introduced in 1970, initially comprising 14 kernels of numerical application, written
in Fortran. The number of kernels was increased to 24 in the 1980's. Performance measurements are in terms of Millions of
Floating Point Operations Per Second or MFLOPS. The program also checks the results for computational accuracy. One main aim was
to avoid producing single number performance comparisons, the 24 kernels being executed three times at different Do-loop spans to
produce short, medium and long vector performance measurements. If overall averages are quoted, the benchmark reference below
indicates that the geometric mean may be interpreted as a characteristic rate of computation but it would be more realistic
to retain the range of statistics in terms of geometric, harmonic and arithmetic means, minimum and maximum.
The results quoted here are for pre-compiled C/C++ versions available in BenchNT.zip which also
contains the source code, providing further explanatory comments. DOS versions are available in
DosTests.zip and those to run via OS/2 in OS2Tests.zip.
Then there is My Main Page for other PC benchmarks and results.
The benchmark has also been compiled with Microsoft 32 bit and 64 bit compilers that generate SSE and SSE2 instructions for floating point.
The original 2006 64 bit version indicated poor performance on Core 2 Duo CPUs but this was corrected using a later compiler in 2009.
Compiled codes (2006 and 2009 versions) are in
Win64.zip with source code in NewSource.zip. See also Win64.htm.
Sample results from even later versions, produced by a Microsoft compiler, include those for an Intel Atom based tablet, using Windows 10.
Livermore Loops Reference - F.H. McMahon, The Livermore Fortran Kernels: A Computer Test
Of The Numerical Performance Range, Lawrence Livermore National Laboratory, Livermore, California, UCRL-53745, December 1986.
Results
The following is a sample of results. Performance tends to be proportional to CPU MHz for a
given type of processor but is also affected by cache size and speed. There can also be variations
probably depending on where the data happens to be stored in cache.
Details of cache sizes and range of CPU MHz can be found in CPUSpeed.htm.
The benchmarks were compiled with and without optimisation options, providing two sets of results.
For each, a summary is provided, comprising geometric, harmonic and arithmetic means, minimum and maximum.
This is followed by MFLOPS for each of the 24 loops. All are sorted by maximum speed values.
Results include those from DOS and Windows compilations that produce very similar speed measurements. Some SSE2 and OS/2 results are included at the bottom of the tables.
The latter are slow as data was misaligned on 4 byte boundaries. Note that the 64 bit results on Core 2 Duo are disappointing - see Vista64.htm.
For reference, the speeds obtained on the Cray 1 supercomputer are also shown.
Later results are for the same code ported to 32-Bit and 64-Bit Linux using the supplied GCC compiler (all free software) - see
linux benchmarks.htm
and download benchmark execution files, source code, compile and run instructions in
classic_benchmarks.tar.gz.
Using Windows the file downloaded wrongly as classic_benchmarks.tar.tar but was fine when renamed classic_benchmarks.tar.gz. Results are shown separately
below.
The benchmark was compiled with a later version of GCC that produces AVX instructions but this did not produce increased speeds - See
Linux AVX benchmarks.htm.
Some changes to initiation of array variables were also needed to enable compilation. See source code in
AVX_benchmarks.tar.gz.
Next conversion was a variety to run on Android tablets and phones on ARM CPUs. This uses a Java front end for starting and displaying results, with the compiled C code for calculations. Download
LivermoreLoops.apk
and install in the usual way for such devices. See also
android benchmarks.htm.
There is also a later version
LivermoreLoops2.apk
with details in
Android Native ARM-Intel Benchmarks.htm
and
Android 64 Bit Benchmarks.htm.
Results for old and new are here below,
now including some via REMIX for PC, providing 64 bit Android running on Intel CPUs.
Latest benchmark was compiled and run on a Raspberry Pi that uses ARM CPUs and Linux. See
Raspberry Pi Benchmarks.htm
and download from
Raspberry_Pi_Benchmarks.zip.
and results here.
Updated later, inculding Raspberry Pi 2 and 3, exising benchmarks and new version from a later compiler.
Benchmarks and source codes for 64 bit Linux are in
Rpi3-64-Bit-Benchmarks.tar.gz.
Only summary results are provided for RPi 2, 3 and newer Android devices. See the HTM files for detailed results.