<shameless plug for PDL development volunteers> I would like to point out that FFTW3 has *extremely* general FFT capabilities, supports multiple threads, parallelization, in-place operation, as well as a much more flexible set of calling schemes.
Porting a PDL::FFTW3 interface would make all of this possible. :-) --Chris On Wed, Feb 13, 2013 at 10:27 AM, Craig DeForest <[email protected]> wrote: > Sorry I didn't catch this earlier. On a 64-bit system it's really just your > available memory on your particular system. You need enough free memory to > hold a bit over 2x the storage space for the array itself (as a complex > number, so 4x if you're transforming a real array), after you round the > dimensions up to the nearest power of two. I've done a fair number of > 1024x1024x256 floating-point 3-D FFTs with fftnd. For some reason, fftnd > requires the full FFT buffer size for each dimension (that could/should be > fixed, but it's easier to buy RAM), so that is 12 GiB (0.25GiB x 4 x 2 x 2 x > 3). > > If you're close to your system RAM size you could run into fragmentation > issues since the FFT buffers have to be contiguous in the address space and > you've presumably been mallocking and freeing hunks of memory all over the > place. In that case you can push the variable out to storage (e.g. as a FITS > file), then Fourier transform it with a standalone script and slurp up the > result in your main script. That lets the standalone script have its own > address space independent of the original one. But that's just a workaround > for the main issue, which is that you need a ton of RAM to transform large > arrays, even with the FFT. > > > > On Feb 13, 2013, at 5:09 AM, Chris Marshall <[email protected]> wrote: > >> I don't know the maximum but if you >> pick something with a smaller number >> of prime factors, you should be able >> to do a larger FFT (within your memory >> and pdl size limits). >> >> You could try PDL::FFTW but you >> will need to install version 2 of the >> FFTW library. >> >> --Chris >> >> On Wed, Feb 13, 2013 at 3:35 AM, Frank Boers <[email protected]> wrote: >>> Dear PDLs, >>> what is the maximum number of elements PDL::FFT can process? >>> >>> use PDL::FFT >>> >>> $data=random(8000000) >>> >>> realfft($data) >>> >>> $data=random(8100000) >>> >>> realfft($data) >>> Error: fftradix() - exceeded number of factors >>> Error: fftradix() - insufficient memory. >>> >>> >>> best regards >>> Frank >>> >>> -- >>> Frank Boers >>> Institute of Neuroscience and Medicine - 4 >>> Medical Imaging Physics >>> Forschungszentrum Juelich GmbH >>> 52425 Juelich >>> phone: +49 - (0)2461-61-6005 >>> fax : +49 - (0)2461-61-2820 >>> email: [email protected] >>> http://www.fz-juelich.de/inm/inm-4/DE/Forschung/MEG-Physik/_node.html >>> >>> >>> >>> ------------------------------------------------------------------------------------------------ >>> ------------------------------------------------------------------------------------------------ >>> Forschungszentrum Juelich GmbH >>> 52425 Juelich >>> Sitz der Gesellschaft: Juelich >>> Eingetragen im Handelsregister des Amtsgerichts Dueren Nr. HR B 3498 >>> Vorsitzender des Aufsichtsrats: MinDir Dr. Karl Eugen Huthmacher >>> Geschaeftsfuehrung: Prof. Dr. Achim Bachem (Vorsitzender), >>> Karsten Beneke (stellv. Vorsitzender), Prof. Dr.-Ing. Harald Bolt, >>> Prof. Dr. Sebastian M. Schmidt >>> ------------------------------------------------------------------------------------------------ >>> ------------------------------------------------------------------------------------------------ >>> >>> _______________________________________________ >>> Perldl mailing list >>> [email protected] >>> http://mailman.jach.hawaii.edu/mailman/listinfo/perldl >> >> _______________________________________________ >> Perldl mailing list >> [email protected] >> http://mailman.jach.hawaii.edu/mailman/listinfo/perldl >> > _______________________________________________ Perldl mailing list [email protected] http://mailman.jach.hawaii.edu/mailman/listinfo/perldl
