- supports the "long" type in C to be 64-bit. As examples, the SGI
- MIPS compiler for the SGI Origin using the "-64" compilation flag and
- the Intel compiler for IA64 are known to work.
-
-
- The above procedure allows you to build one benchmark
- at a time. To build a whole suite, you can type "make suite"
- Make will look in file "config/suite.def" for a list of
- executables to build. The file contains one line per specification,
- with comments preceded by "#". Each line contains the name
- of a benchmark, the class, and the number of processors, separated
- by spaces or tabs. config/suite.def.template contains an example
- of such a file.
-
-
- The benchmarks have been designed so that they can be run
- on a single processor without an MPI library. A few "dummy"
- MPI routines are still required for linking. For convenience
- such a library is supplied in the "MPI_dummy" subdirectory of
- the distribution. It contains an mpif.h and mpi.f include files
- which must be used as well. The dummy library is built and
- linked automatically and paths to the include files are defined
- by inserting the line "include ../config/make.dummy" into the
- make.def file (see example in make.def.template). Make sure to
- read the warnings in the README file in "MPI_dummy".The use of
- the library is fragile and can produce unexpected errors.
-
-
- ================================
-
- The "RAND" variable in make.def
- --------------------------------
-
- Most of the NPBs use a random number generator. In two of the NPBs (FT
- and EP) the computation of random numbers is included in the timed
- part of the calculation, and it is important that the random number
- generator be efficient. The default random number generator package
- provided is called "randi8" and should be used where possible. It has
- the following requirements:
-
- randi8:
- 1. Uses integer*8 arithmetic. Compiler must support integer*8
- 2. Uses the Fortran 90 IAND intrinsic. Compiler must support IAND.
- 3. Assumes overflow bits are discarded by the hardware. In particular,
- that the lowest 46 bits of a*b are always correct, even if the
- result a*b is larger than 2^64.
-
- Since randi8 may not work on all machines, we supply the following
- alternatives:
-
- randi8_safe
- 1. Uses integer*8 arithmetic
- 2. Uses the Fortran 90 IBITS intrinsic.
- 3. Does not make any assumptions about overflow. Should always
- work correctly if compiler supports integer*8 and IBITS.
-
- randdp
- 1. Uses double precision arithmetic (to simulate integer*8 operations).
- Should work with any system with support for 64-bit floating
- point arithmetic.
-
- randdpvec
- 1. Similar to randdp but written to be easier to vectorize.
-
-