blob: 9096a0b3506d873b52963b9aac5cc0151bc1939b [file] [log] [blame]
###########################################
# NAS Parallel Benchmarks 2&3 #
# MPI/F77/C #
# Revision 3.3 #
# NASA Ames Research Center #
# npb@nas.nasa.gov #
# http://www.nas.nasa.gov/Software/NPB/ #
###########################################
MPI Dummy Library
The MPI dummy library is supplied as a convenience for people who do
not have an MPI library but would like to try running on one processor
anyway. The NPB 2.x/3.x benchmarks are designed so that they do not
actually try to do any message passing when run on one node. The MPI
dummy library is just that - a set of dummy MPI routines which don't
do anything, but allow you to link the benchmarks. Actually they do a
few things, but nothing important. Note that the dummy library is
sufficient only for the NPB 2.x/3.x benchmarks. It probably won't be
useful for anything else because it implements only a handful of
functions.
Because the dummy library is just an extra goody, and since we don't
have an infinite amount of time, it may be a bit trickier to configure
than the rest of the benchmarks. You need to:
1. Find out how C and Fortran interact on your machine. On most machines,
the fortran functon foo(x) is declared in C as foo_(xp) where xp is
a pointer, not a value. On IBMs, it's just foo(xp). On Cray C90s, its
FOO(xp). You can define CRAY or IBM to get these, or you need to
edit wtime.c if you've got something else.
2. Edit the Makefile to compile mpi_dummy.f and wtime.c correctly
for your machine (including -DCRAY or -DIBM if necessary).
3. The substitute MPI timer gives wall clock time, not CPU time.
If you're running on a timeshared machine, you may want to
use a CPU timer. Edit the function mpi_wtime() in mpi_dummy.f
to change this timer. (NOTE: for official benchmark results,
ONLY wall clock times are valid. Using a CPU timer is ok
if you want to get things running, but don't report any results
measured with a CPU timer. )
TROUBLESHOOTING
o Compiling or linking of the benchmark aborts because the dummy MPI
header file or the dummy MPI library cannot be found.
- the file make.dummy in subdirectory config relies on the use
of the -I"path" and -L"path" -l"library" constructs to pass
information to the compilers and linkers. Edit this file to conform
to your system.