Re: dissapointing fftw [message #38005 is a reply to message #37948] |
Tue, 10 February 2004 12:41   |
R.G. Stockwell
Messages: 363 Registered: July 1999
|
Senior Member |
|
|
"Brad Gom" <b_gom@hotmail.com> wrote in message news:bde24eff.0402101056.19207d7e@posting.google.com...
> Bob,
>
> I share some of your disapointment, but I don't have Matlab speeds to
> compare to. The speed of FFTW does rely heavily on the plan, and for
> some jobs it is just as well to stick with the IDL FT. I suspect the
> speed advantage will vary quite a bit with the data and hardware at
> hand.
>
> Here's a plot of a quick test on my machine, using the fftw_one
> function and IDL's FT function on a complex array of various lengths:
> http://people.uleth.ca/~brad.gom/fftw/new-3.png
>
> Here's the actual times as a function of length. Red is the FFTW.
> http://people.uleth.ca/~brad.gom/fftw/new-1.png
>
> Arrays less than 2^16 are faster in IDL.
> These data sets were all powers of 2 in length, and the trends will be
> different for non power of two lengths. For example, here are the
> results for arrays of (2^n)+1 in length:
>
> http://people.uleth.ca/~brad.gom/fftw/new-4.png
> http://people.uleth.ca/~brad.gom/fftw/new-5.png
>
> and for all lengths between 10 and 110:
>
> http://people.uleth.ca/~brad.gom/fftw/new-6.png
> http://people.uleth.ca/~brad.gom/fftw/new-6.png
>
> I haven't dug into my DLM to see where time is being wasted, but it
> seems as though you still have to carefully consider the size of data
> going into your FT routine if you want the best performance, no matter
> which routine you use..
>
> Brad
Hi Brad,
good info, it is interesting to see those plots.
In my work I use a lot of S-Transforms to calculate the
local spectrum (as a function of time), and it employs a
_lot_ of FFT calls. But I also use it for arbitrary lengths of time
and the requirement of the fftw to calculate a plan for each different
length is a real killer. Plus, the creation of the plan can be very very
slow (i.e. minutes). I also use complex data and complex spectra, so
I can't take advantage of the fftw ability to return only the positive
frequency half of the spectrum.
Oddly enough the matlab invokation of fftw does not seem to have that step
(of calculating the plan).
Hopefully IDL will incorporate it into a future version, because the order
of magnitude speed increase that the matlab example suggests would be quite
nice to have.
Cheers,
bob
|
|
|