A Revision of the NASA Kernel Benchmark Program

NAS is a FORTRAN90 program which is a revision of David Bailey's NASA kernel benchmark program.

The NAS benchmark program was developed around 1984, and measured computational performance on a representative range of realistic calculations. One motivation for this benchmark was to move beyond the LINPACK benchmark, which focussed on a single highly structured procedure.

Benchmarking computers has become much more difficult now that memory, I/O, multicores and distributed memory have all become significant factors in computing performance. Nonetheless, the NAS benchmarks provide an interesting insight into the floating point processing power of a system, and so, for this reason, a version of the program has been created that retains the functionality of the original, while being somewhat easier to transfer to other languages.


runs the program, and prints the error, timing, and MegaFLOPS results.


The computer code and data files described and made available on this web page are distributed under the GNU LGPL license.


NAS is available in a C version and a C++ version and a FORTRAN90 version and a MATLAB version and a Python version.

Related Data and Programs:

LINPACK_BENCH, a FORTRAN90 program which measures the time taken by LINPACK to solve a particular linear system.

MATMUL, a FORTRAN90 program which is an interactive matrix multiplication benchmark.

MDBNCH, a FORTRAN77 program which is a benchmark molecular simulation calculation.


  1. David Bailey, John Barton,
    The NAS Kernel Benchmark Program,
    Numerical Aerodynamics Simulations Systems Division,
    NASA Ames Research Center,
    13 June 1986.

Source Code:

Examples and Tests:

List of Routines:

You can go up one level to the FORTRAN90 source codes.

Last revised on 03 November 2010.