Linpack Benchmark -- Java Version

This applet runs the Linpack Benchmark in Java. The Linpack Benchmark is a numerically intensive test that has been used for years to measure the floating point performance of computers. To run the benchmark after the graph loads hit "Press to run ...".

Jack Dongarra, Reed Wade, and Paul McMahan

(please direct inquiries to

A number of people have been confused by the results of this benchmark. This test is more a reflection of the state of the Java systems than of the floating point performance of the underlying processors. Some Java systems do line by line interpretation and others perform ``just in time'' (jit) compilation. As you might guess, the jit systems perform better, perhaps by an order of magnitude.

If you can read this then it means that you are using a browser that does not support java. The newest versions of Netscape Navigator and Microsoft Internet Explorer support java so you might want to try one of those out.


The problem solved is a dense 500x500 system of linear equations with one right hand side, Ax=b. The matrix is generated randomly and the right hand side is constructed so the solution has all components equal to one. The method of solution is based on Gaussian elimination with partial pivoting.
Millions of floating point operations per second. A floating point operation here is a floating point addition or a floating point multiplication with 64 bit operands. For this problem there are 2/3 n^3 + n^2 floating point operations.
The time in seconds to solve the problem, Ax=b.
Norm Res
A check is made to show that the computed solution is correct. The test is based on || Ax - b || / ( || A || || x || eps) where eps is described below. The Norm Res should be about O(1) in size. If this quantity is much larger than 1, the solution is probably incorrect.
The relative machine precision usually the smallest positive number such that fl( 1.0 - eps ) < 1.0, where fl denotes the computed value and eps is the relative machine precision.

Special thanks to Jonathan Hardwick ( who made a number of valuable optimizations to the Linpack Java Benchmark. These changes brought a 10-20% speed increase and are described here. Also don't miss his more general Java Optimization page.

As of 5 April 96 we are running the optimized code and will maintain separate timings lists until a significant number of timings have been done under the new code.

Also, see Ivan Phillips' CaffeineMark benchmark.

As of 30 June 2000 the problem size has been increased to 500x500. This was done because the timing resolution was too low to get accurate Mflop ratings for the 100x100 problem on very fast machines.

A plain-text version of the java-linpack benchmark (tar gzip or zip file). It has all the graphical components removed so that you can run it from the command line (it doesn't run as an applet). Here's an example of the output:

mycomputer> java Linpack
Mflops/s: 0.351 Time: 1.96 secs Norm Res: 1.67 Precision: 2.22045e-16

This is a list of the current timings that have been submitted using the 500x500 problem set .

This is a list of timings that have been submitted using the 100x100 problem set (list size > 200kbytes).

Here are the list of timings from the first version of the Linpack Java Benchmark. (Before optimizations.)