Dear Timo, due to memory access conflicts for certain architectures (cray was one of these) FFT routines were significantly slower if some of the nrx1,nrx2,nrx3 (nr1 in scalar and nr3 in parallel executions) was a multiple of 2 while obviously nr1,nr2,nr3 are best when they are powers of 2. It was therefore convenient to have the flexibility to set nrx1=nr1+1 (or nrx3=nr3+1) when nr1(nr3) was even. Now this is not anymore the case on most machines but the distinction between nr? and nrx? remains and in some case it is still useful. Best regards, Stefano de Gironcoli
Timo Thonhauser wrote: > Dear Developers, > > What is the difference between nr1, nr2, nr3 and nrx1, nrx2, nrx3 > in the code? For all practical purposes they always seem to be > the same. > > In PW/pwcom.f90 we find: > > nr1, &! fft dimension along x > nr2, &! fft dimension along y > nr3, &! fft dimension along z > nrx1, &! maximum fft dimension along x > nrx2, &! maximum fft dimension along y > nrx3, &! maximum fft dimension along z > > But when would nr1 differ from nrx1? > > Thanks a lot! > Timo > >
