The OpenMP implementation of NPB 3.3 (NPB3.3-OMP)
--------------------------------------------------

For problem reports and suggestions on the implementation, 
please contact:

   NAS Parallel Benchmark Team
   npb@nas.nasa.gov


This directory contains the OpenMP implementation of the NAS
Parallel Benchmarks, Version 3.3 (NPB3.3-OMP).  A brief
summary of the new features introduced in this version is
given below.

For changes from different versions, see the Changes.log file
included in the upper directory of this distribution.

For explanation of compilation and running of the benchmarks,
please refer to README.install.


NPB3.3-OMP introduces a new problem size (class E) to seven of 
the benchmarks (BT, SP, LU, CG, MG, FT, and EP). The version 
also includes a new problem size (class D) for the IS benchmark, 
which was not present in the previous releases.

The release is merged with the vector codes for the BT and LU 
benchmarks, which can be selected with the VERSION=VEC option 
during compilation.  However, successful vectorization highly 
depends on the compiler used.  Some changes to compiler directives 
for vectorization in the current codes (see *_vec.f files)
may be required.

OMP/LU-HP (the hyper-plane implementation of LU) is no longer 
included in the distribution.  To get this version, please 
download NPB3.2.1 instead.
