FFTW

The version of octave installed on the workstations of the Physics Education Cluster (the ``ws##'' machines, not the login node ``ac'') actually have FFTW installed.

To get an idea of the performance enhancements associated with this package, first time the current ``fft3.m'' package which you are using:

  1. make sure you are on one of the ``ws##'' machines and not the login node ``ac'';
  2. make sure you are in your current working directory with the ``poisson.m'' code;
  3. edit ``setup.m'' so that you use a grid of size $64 \times 64 \times 64$;
  4. edit ``poisson.m'' so that you comment out the plotting calls to mesh();
  5. overwrite your current ``fft3.m'' with a version that includes an MFLOPS counter:
    cp /home/muchomas/P480/Octave/fft3_factored.m fft3.m
    
  6. run and time the Poisson calculation a few times within octave with
    octave> setup
    octave> tic; poisson; runtime=toc
    octave> tic; poisson; runtime=toc
    octave> tic; poisson; runtime=toc
    
The code will then print out the MFLOPS rate for each three-dimensional FFT call and also print out your final runtime. (I obtain a total runtime of about 0.73 seconds and a processing rate of about 30 MFLOPS.)

Next, install the direct call to the FFTW package with

cp /home/muchomas/P480/Octave/fft3w.m fft3.m
and rerun the above timing test with
octave> setup
octave> tic; poisson; runtime=toc
octave> tic; poisson; runtime=toc
octave> tic; poisson; runtime=toc
You should find that you get exactly the same results as before but at a notable improvement in performance.

Finally, before proceeding with the rest of this assignment, you may find it convenient to comment out the lines of code used in your final version of ``fft3.m'' to compute the MFLOPS rate, namely the two with the ``tic'' and ``MFLOPS=...'' commands.

Tomas Arias 2005-04-15