NAS Parallel Benchmarks (original) (raw)

The NAS Parallel Benchmarks (NPB) are a small set of programs designed to help evaluate the performance of parallel supercomputers. The benchmarks are derived from computational fluid dynamics (CFD) applications and consist of five kernels and three pseudo-applications in the original "pencil-and-paper" specification (NPB 1). The benchmark suite has been extended to include new benchmarks for unstructured adaptive meshes, parallel I/O, multi-zone applications, and computational grids. Problem sizes in NPB are predefined and indicated as different classes. Reference implementations of NPB are available in commonly-used programming models like MPI and OpenMP (NPB 2 and NPB 3).

Benchmark Specifications

The original eight benchmarks specified in NPB 1 mimic the computation and data movement in CFD applications:

Multi-zone versions of NPB (NPB-MZ) are designed to exploit multiple levels of parallelism in applications and to test the effectiveness of multi-level and hybrid parallelization paradigms and tools. There are three types of benchmark problems derived from single-zone pseudo applications of NPB:

Benchmarks for unstructured computation, parallel I/O, and data movement

GridNPB is designed specifically to rate the performance of computational grids. Each of the four benchmarks in the set consists of a collection of communicating tasks derived from the NPB. They symbolize distributed applications typically run on grids.

Documents on benchmark specifications:

Benchmark Classes

Details of NPB Problem Sizes and Parameters.

Reference Implementations

Vendors and others implement the detailed specifications in the NPB 1 report, using algorithms and programming models appropriate to their different machines. NPB 1 implementations are generally proprietary and are not distributed by NAS.

A set of reference implementations of the NPB specifications has been written and distributed by NAS as NPB 2 and NPB 3. These source-code implementations are intended to be run with little or no tuning, and approximate the performance a typical user can expect to obtain for a portable parallel program. NPB 2 contains MPI-based source code implementations of the original eight benchmarks, and NPB 3 has included new benchmarks and problem classes as well as implementations using other programming models. NPB 3.4.3 is the latest release.

Summary of Source Code Releases with Download Links

Download Version Benchmarks Included Problem Classes Programming Models Used Major Changes
NPB 3.4.3 (GZIP, 445KB) IS, EP, CG, MG, FT, BT, BT-IO, SP, LU, UA, DC, DT S,W,A,B,C,D,E,F MPI, OpenMP added Class F, dynamic memory allocation
NPB 3.4.3-MZ (GZIP, 233KB) BT-MZ, SP-MZ, LU-MZ S,W,A,B,C,D,E,F MPI+OpenMP, OpenMP dynamic memory allocation
NPB 3.3.1 (GZIP, 625KB) IS, EP, CG, MG, FT, BT, BT-IO, SP, LU, UA, DC, DT S,W,A,B,C,D,E MPI, OpenMP, serial added Class E
NPB 3.3.1-MZ (GZIP, 336KB) BT-MZ, SP-MZ, LU-MZ S,W,A,B,C,D,E,F MPI+OpenMP, OpenMP, serial nested OpenMP version
GridNPB 3.1 (GZIP, 112KB) ED, HC, VP, MB S,W,A,B Globus, Java, serial added Globus version
NPB 3.0 (GZIP, 507KB) IS, EP, CG, MG, FT, BT, SP, LU S,W,A,B,C OpenMP, HPF, Java new programming paradigms
NPB 2.4.1 (GZIP, 164KB) IS, EP, CG, MG, FT, BT, BT-IO, SP, LU S,W,A,B,C,D MPI added BT-IO, Class D
NPB 2.3 (GZIP, 276KB) IS, EP, CG, MG, FT, BT, SP, LU S,W,A,B,C MPI, serial added CG, serial version

Other links of interest:

Third-party implementations of the NAS Parallel Benchmarks, such as in OpenMP C and UPC, are not provided or distributed by NAS. You may want to use a search engine to find relevant information on the internet.

Reports and Results

NPB 2 and NPB 3

These reports document some details of and experience with the reference implementations in NPB 2 and NPB 3:

Results:

The results presented here are partly generated by NAS, and partly by computer vendors and the HPC community. NAS is currently working on creating a more automatic archiving facility, as well as a tool for creating performance plots on the fly.

How To Submit Results:

NAS solicits NPB 2 and NPB 3 results from all sources. They will be incorporated into a database maintained by NAS, and will also be made available on this web page. Send results to npb@nas.nasa.gov. Details on what information should be submitted are contained in appendix D of the NPB 2.0 report. This information includes:

NPB 1

Vendors and others implement the detailed specifications in the original "pencil and paper" benchmark specifications, using algorithms and programming models appropriate to their different machines. Submitted results are verified by the NAS Division.

Results:

How To Submit Results:

NAS solicits NPB 1 results from all sources, but especially from computer vendors. These results are compiled in tabular fashion in periodic reports that will appear on this web page. Send results to npb@nas.nasa.gov. Details on what information to include are contained in section 1.4 of the NPB 1 specification.

GridNPB 3

The NAS distribution of GridNPB contains serial and concurrent reference implementations in Fortran and Java, including a version that uses Globus as grid middleware. A variation of the grid benchmarks called "Rapid Fire" is included.

Reports on implementations: GridNPB 3.0, NAS-02-005 (PDF-352KB)

How To Submit Results:

Objective measures for grid performance are not yet available; NAS currently does not collect GridNPB performance results. A valid implementation should always report turnaround time and, preferably, resources used, including libraries, schedulers, resource brokers, and so forth.