Dear all,

I have recently read in the FFTW manual that the one dimensional r2c (real to complex) FFT is roughly twice as fast as the one dimensional c2c.

Is there a reason why the use of r2c FFTs is prohibitive or disadvantageous in LAMMPS?

Best regards,

Rolf

Dear all,

I have recently read in the FFTW manual that the one dimensional r2c (real to complex) FFT is roughly twice as fast as the one dimensional c2c.

Is there a reason why the use of r2c FFTs is prohibitive or disadvantageous in LAMMPS?

well, have you looked up *how* this is done?

basically, you still do a c2c FFT,. but rather

than padding your data with zeroes, now you

store half of the data in the imaginary part of

your input and then do the FFT.

so the 2x speedup comes from not padding

the real data with zeroes to make it complex

and thus "double" the amount of data (but not

information) you transform.

how do you know that lammps doesn't do

the same "trick" already?

that being said, the importance of the FFT

speed for the overall performance depends

a lot on how many processors you use.

the more processors you use, the less

important it gets, since communication

due to the transposes for the 3d transforms

becomes more important. this, however,

can be sped up by compiling for single

precision FFTs.

cheers,

axel.

It's been a while since I looked at this,

but my recollection is that when doing a

3d FFT, you would only get the 2x savings

on the first 1d FFT to do it in real vs complex.

After that, the remaining computation (for

the other 2 dims) and

communication is the full complex representation.

So the savings is minimal, but I could be wrong.

Steve