is, a C code which is a serial implementation of the NAS Parallel Benchmark known as IS ("Integer Sort").
The NAS Parallel Benchmarks are "paper and pencil" specifications; that is, the proposers have laid down what the codes must do algorithmically, but only very general rules about computer language implementation have been given. Thus, a user or vendor has enormous freedom in implementing the benchmark code in a way that is optimal for a given architecture or parallel codeming scheme.
As a starting point for implementors, the proposers have supplied certain initial versions of the benchmark codes.
This directory contains material derived from one such initial benchmark code. Persons interested in the original source of the benchmark codes should NOT work from this material, but should go to the NAS Parallel Benchmark website directly!
The benchmark codes are available in SERIAL, MPI and OPEN_MP versions, and in a sequence of "classes" of increasing size: S, W, A, B, C, D and E.
Statistics for classes S, A, and B, are available, as run on one processor of a Cray Y-MP, with a C version of the code.
Class | Size | Memory (Mw) | Time (sec) | Mop/s |
---|---|---|---|---|
S | 2^16 | 0.3 | 0.2 | 30.5 |
A | 2^23 | 26 | 21 | 37.2 |
B | 2^25 | 114 | 126 | 25 |
Statistics for classes S, W, A, B, and C are available, as run on an Apple PowerPC G5, using this SERIAL C version of the code:
Class | Size | Memory (Mw) | Time (sec) | Mop/s |
---|---|---|---|---|
S | 2^16 | 0.3 | 0.06 | 11 |
W | 2^20 | --- | 0.69 | 15 |
A | 2^23 | 26 | 5.62 | 15 |
B | 2^25 | 114 | 28.16 | 12 |
C | 2^27 | --- | 90.69 | 15 |
This directory contains the serial version of the benchmark, along with include files that allow it to run in some of the smaller sizes.
The web site for the NAS Parallel Benchmarks is http://www.nas.nasa.gov/Resources/Software/npb.html.
The computer code and data files made available on this web page are distributed under the MIT license
is is available in a C version.
fire_simulation, a C code which simulates a forest fire over a rectangular array of trees, starting at a single random location. It is intended as a starting point for the development of a parallel version.
life_serial, a C code which computes a few steps of the evolution of John Conway's Game of Life, intended as a starting point for implementing a parallel version.
mxm, a C code which sets up a matrix multiplication problem A=B*C, intended as a starting point for implementing a parallel version.
poisson_simulation, a C code which computes an approximate solution to the Poisson equation in a rectangle, and is intended as the starting point for the creation of a parallel version.
prime, a C code which counts the number of primes between 1 and N, intended as a starting point for the creation of a parallel version.
search, a C code which searches the integers from A to B for a value J such that F(J) = C. this version of the code is intended as a starting point for a parallel approach.
subset_sum, a C code which seeks solutions of the subset sum problem, in which it is desired to find a subset of a set of integers which has a given sum; this version of the code is intended as a starting point for a parallel approach.