CG_SERIAL
NAS Parallel Benchmark CG, Serial Version, FORTRAN77


CG_SERIAL is a FORTRAN77 program which is a serial implementation of the NAS Parallel Benchmark known as CG ("conjugate gradient").

The NAS Parallel Benchmarks are "paper and pencil" specifications; that is, the proposers have laid down what the programs 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 program in a way that is optimal for a given architecture or parallel programming scheme.

As a starting point for implementors, the proposers have supplied certain initial versions of the benchmark programs.

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 programs 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, using a FORTRAN77 version of the program.
ClassSizeMemory (Mw)Time (sec)MFLOPS
S14001.01.263
A1400010.02270
B7500097.099855

Statistics for classes S, W, A, B, and C are available, as run on an Apple PowerPC G5, using this SERIAL FORTRAN77 version of the program.
ClassSizeMemory (Mw)Time (sec)Mops/s
S14001.00.58115.42
W7000?4.4295.13
A1400010.019.4277.07
B75000?2373.2223.05
C150000?8485.4116.89

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.

Languages:

CG_SERIAL is available in a FORTRAN77 version and a FORTRAN90 version.

Related Data and Programs:

BT_SERIAL, a FORTRAN77 program which runs the serial version of the NAS Parallel Benchmark known as "BT" (block tridiagonal solver for 3D PDE).

CG, a FORTRAN77 library which implements a simple version of the conjugate gradient (CG) method for solving a system of linear equations of the form A*x=b, suitable for situations in which the matrix A is positive definite (only real, positive eigenvalues) and symmetric.

CG_RC, a FORTRAN77 library which implements the conjugate gradient method for solving a positive definite sparse linear system A*x=b, using reverse communication.

EP_SERIAL, a FORTRAN77 program which is a serial version of the NAS Parallel Benchmark EP (embarassingly parallel).

FFT_SERIAL, a FORTRAN77 program which demonstrates the computation of a Fast Fourier Transform, and is intended as a starting point for implementing an OpenMP parallel version.

FIRE_SERIAL, a FORTRAN77program 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.

IS_SERIAL, a C program which is a serial version of the NAS Parallel Benchmark IS (integer sort).

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

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

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

MG_SERIAL, a FORTRAN77 program which a serial version of the NAS Parallel Benchmark MG (MultiGrid).

MXM_SERIAL, a FORTRAN77 program which sets up a matrix multiplication problem A=B*C, intended as a starting point for implementing a parallel version.

POISSON_SERIAL, a FORTRAN77 program 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_SERIAL, a FORTRAN77 program which counts the number of primes between 1 and N, intended as a starting point for the creation of a parallel version.

SEARCH_SERIAL, a FORTRAN77 program which searches the integers from A to B for a value J such that F(J) = C. this version of the program is intended as a starting point for a parallel approach.

SUBSET_SUM_SERIAL, a FORTRAN77 program 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 program is intended as a starting point for a parallel approach.

Reference:

  1. David Bailey, Eric Barszcz, John Barton, D Browning, Robert Carter, Leonardo Dagum, Rod Fatoohi, Samuel Fineberg, Paul Frederickson, Thomas Lasinski, Robert Schreiber, Horst Simon, V Venkatakrishnan, Sisira Weeratunga,
    The NAS Parallel Benchmarks,
    International Journal of High Performane Computing Applications,
    Volume 5, Number 3, September 1991, pages 63-73.

Source Code:

Examples and tests:

CG_SERIAL_S runs the benchmark in serial mode with problem size S.

CG_SERIAL_W runs the benchmark in serial mode with problem size W.

CG_SERIAL_A runs the benchmark in serial mode with problem size A.

CG_SERIAL_B runs the benchmark in serial mode with problem size B.

CG_SERIAL_C runs the benchmark in serial mode with problem size C.

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


Last revised on 12 April 2009.