INSTALLATION
============

1. install fftw-2.1.3
   In order to get libraries that work with more than one MPI distribution
   I use shared libraries. Since mpich-1.2.1 does not use shared libraries
   by default this requires that fftw is compiled twice:
   
   MPICC='/usr/local/mpich-1.2.1/bin/mpicc' CC=gcc CFLAGS='-fomit-frame-pointer -O3 -funroll-loops' ./configure --enable-threads --enable-mpi --enable-i386-hacks --enable-pentium-timer
   edit line 81 of fftw/config.h
   make
   make install
   make clean
   rm config.cache
   MPICC='/usr/local/mpich-1.2.1/bin/mpicc -shlib' CC=gcc CFLAGS='-fomit-frame-pointer -O3 -funroll-all-loops' ./configure  --enable-shared --disable-static --enable-threads --enable-mpi --enable-i386-hacks --enable-pentium-timer
   edit line 81 of fftw/config.h
   make
   make install

   The so generated .so libraries can be used with mpipro as well.
   Unfortunately, for reasons unknown to me they did not work with lam
   (if somebody figures out how to fix this, please let me know).
   Hence I had to compile fftw a third time :-(

   make clean
   rm config.cache
   MPICC='/usr/local/lam/bin/mpicc' CC=gcc CFLAGS='-fomit-frame-pointer -O3 -funroll-loops' ./configure  --prefix=/usr/local/lam --enable-shared --enable-threads --enable-mpi --enable-i386-hacks --enable-pentium-timer
   edit line 81 of fftw/config.h
   make
   make install

2. edit the makefile, particularly CFLAGS and MPICC

3. make

4. repeat step 2. and 3. for all other MPI distributions you want to test.

Run the Tests
=============

for mpich, mpipro:
mpicc -np <np> -machinefile <mpihostsfile> ./<executable> 4711 <L> 1e-8 <nfft>

for lam:
lamboot -v <lamhostsfile>
mpicc n0 n0 n1 n1 ... ./<executable> -- 4711 <L> 1e-8 <nfft>
wipe -v

single cpu (for reference purposes):
./fftw_test 4711 <L> 1e-8 <nfft>

I used: L=1600, nfft= 6
        L= 800, nfft=24
        L= 400, nfft=96

Questions/comments to: Martin Siegert, siegert@sfu.ca
