<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

Reply via email to