To install the benchmark, you must first download and compile FFTW. (This is necessary not only because FFTW is one of the codes being benchmarked, but also because certain type definitions and timing routines from FFTW are used in the benchmark.) You can download FFTW from the FFTW Home Page, Netlib, and other sites. The FFTW directory should be in the same directory as the benchFFT directory.
./configure makeSad to say, however, complications often arise. First,
configure
only knows good C and Fortran compiler flags
for a few systems; if your system isn't known, a warning will be
printed out. You can specify the flags manually by using:
make CFLAGS="..." FFLAGS="..."Another problem is that the benchmark has a tendency to crash compilers (because of its size and its eclectic origins). (e.g. this has been observed with Sun and SGI compilers.) Typically, the solution is to reduce the optimization level for those particular files. If this doesn't work, you will need to comment out those files from the
Makefile
and from the benchmark source code.
Good luck!
configure
script does not work on non-Unix systems.
It is still possible to compile the benchmark on these platforms,
however. You merely have to compile all of the source code files that
are listed in the Makefile
, and link in the FFTW library.
If you have a Fortran compiler, be sure to define the
HAVE_F77
symbol in bench-config.h
so that
the benchmark code calls the Fortran routines. You will also have to
set up your compiler's include paths appropriately.
The benchmark is designed for machines on which the
int
type contains at least 32 bits (and the
Fortran integer
type should be the same size).
extras/nr
(see also extras/nr/README
)
configure
script. They
will automatically be patched as necessary and included in the
benchmark. On non-Unix systems, you will have to apply the patches
manually; we don't document this here.
djbfft-0.60
(the latest version at the time of this
writing) in the extras
directory before running the
configure
script. The code will automatically be
detected and included in the benchmark.
FORTRANIZE
macro in bench_utils.h
. (See how
we handled the Cray, IBM, and Solaris compilers for examples.)
configure
script attempts to
automatically detect these libraries if they are present on your
system, and includes them in the benchmark if it finds them. Let us
know if they are present on your system but configure
doesn't find them.