nas


nas, an Octave code 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.

This version of the benchmark runs remarkably poorly under MATLAB. The performance could be greatly improved if effort was made to vectorize some of the code. For example, the matrix multiplication benchmark, which has been vectorized, runs very well.

Licensing:

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

Languages:

nas is available in a C version and a C++ version and a Fortran90 version and a MATLAB version and an Octave version and a Python version.

Related Data and Programs:

nas_test

Reference:

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

Source Code:


Last revised on 01 October 2022.