linpack_bench, a Fortran90 code which carries out the LINPACK Benchmark.
The LINPACK benchmark is a test problem used to rate the performance of a computer on a simple linear algebra problem.
The test problem requires the user to set up a random dense matrix A of size N = 1000, and a right hand side vector B which is the product of A and a vector X of all 1's. The first task is to compute an LU factorization of A. The second task is to use the LU factorization to solve the linear system
A * X = B.
The number of floating point operations required for these two tasks is roughly
ops = 2 * N*N*N / 3 + 2 * N * N,therefore, the "MegaFLOPS" rating, or millions of floating point operations per second, can be found as
mflops = ops / ( cpu * 1000000 ).
On a given computer, if you run the benchmark for a sequence of increasing values of N, the behavior of the MegaFLOPS rating will vary as you pass through three main zones of behavior:
Language | Precision | Type | Machine | Comment | MegaFLOPS |
---|---|---|---|---|---|
Fortran90 | Single | Real | Chili | (rewritten) | 240 |
Fortran90 | Single | Real | Kachina | 196 | |
Fortran90 | Single | Real | Chili | 194 | |
Fortran90 | Single | Real | Eclipse | (1 processor) | 127 |
Fortran90 | Single | Real | DHCP95 (Apple G5) | gFortran | 118 |
Fortran90 | Single | Real | Yankee (Apple G4) | 36 | |
Fortran90 | Single | Real | Teragold | (1 processor) | 18 |
Fortran90 | Single | Real | Sgi | 16 | |
Fortran90 | Double | Real | DHCP95 (Apple G5) | gFortran | 149 |
Fortran90 | Double | Real | Chili | fort -fast | 104 |
Fortran90 | Double | Real | Kachina | 87 | |
Fortran90 | Double | Real | Chili | 77 | |
Fortran90 | Quad | Real | DHCP95 (Apple G5) | gFortran | 23 |
Fortran90 | Quad | Real | Chili | 10 |
The information on this web page is distributed under the MIT license.
linpack_bench is available in a C version and a C++ version and a Fortran90 version and a MATLAB version.
linpack_d, a Fortran90 code which supplies the solvers used by LINPACK_BENCH.
matmul, a Fortran90 code which is an interactive matrix multiplication benchmark program.
memory_test, a Fortran90 code which declares and uses a sequence of larger and larger vectors, to see how big a vector can be used on a given machine and compiler.
mxm, a Fortran90 code which sets up a matrix multiplication problem A=B*C of arbitrary size, and compares the time required for IJK, IKJ, JIK, JKI, KIJ and KJI orderings of the loops.
nas, a Fortran90 code which runs the NASA kernel benchmark.
timer, a Fortran90 code which measures CPU time or elapsed time.